Wget i wykonywanie czynno

Potrzebujesz pomocy z C, C++, perl, python, itp.
konradr25
Posty: 2
Rejestracja: 11 lutego 2011, 23:57

Wget i wykonywanie czynności po pobraniu pliku

Post autor: konradr25 »

Witam.
Mam takie polecenie:

Kod: Zaznacz cały

wget -r -nc --no-parent -nd -A jpg [url=http://redirect.lightspeedgaming.net/css/maps/]http://strona.pl/www/ [/URL]
I chciałbym napisać skrypt, który po pobraniu każdego pliku, np. kompresuje go do bz2. Tylko nie w ten sposób: zostają pobierane wszystkie pliki, a następnie wszystkie kompresowane, bo w tym przypadku to wystarczy dopisać polecenie:

Kod: Zaznacz cały

bzip2.exe -9 -z *.*
i będzie po problemie.

Schematycznie to by wyglądało tak:
  • Zostaje pobrany plik 1.jpg.
  • Zostaje wykonana jakaś tam czynność na pliku 1.jpg.
  • Zostaje pobrany plik 42dfc.jpg.
  • Zostaje wykonana jakaś tam czynność na pliku 42dfc.jpg.
  • Dałoby się tak zrobić? Proszę bardzo o pokazanie mi sposobu.
Z góry dziękuję za pomoc.
Awatar użytkownika
Van
Beginner
Posty: 194
Rejestracja: 04 lipca 2009, 11:54

Post autor: Van »

Może po prostu wrzucić instrukcje pobrania i pakowania w jakąś pętlę?
pioruns
Beginner
Posty: 117
Rejestracja: 12 stycznia 2008, 17:36

Post autor: pioruns »

Zainteresowałem się opcją

Kod: Zaznacz cały

wget --execute
Tak jak napisali w Linux Magazine z marca 2011:
Another option is to streamline operations by setting a command to run after a download is finished with -e COMMAND or --execute COMMAND. For example, if I use wget to download myfile.deb (...), I might use:

Kod: Zaznacz cały

wget -e dpkg -i ./myfile.deb
to have the package installed automatically when the download is done.
Ale wychodzi na to, że redaktor tego pisma nie miał racji.
Przynajmniej u mnie na Debianie tak to nie działa. --execute nadpisuje ustawienia w pliku konfiguracji .wgetrc pozwalając na konfigurację parametru tylko dla wybranego pliku, na przykład:

Kod: Zaznacz cały

wget -e cookies=off www.wp.pl
Awatar użytkownika
Mateush
Posty: 40
Rejestracja: 26 kwietnia 2008, 14:01
Lokalizacja: Poznań

Post autor: Mateush »

Trochę na około, ale może skrypt w pythonie?

Edycja:
Napisałem coś takiego. Jeśli chodzi Ci o inny język możesz po prostu wziąć stąd tok postępowania. Przy okazji fajnie gdyby ktoś rzucił okiem, czy na pewno dobrze, dopiero się uczę.

Kod: Zaznacz cały

import sys

def urls(infile):
	file = open(infile, 'r')
	urls = []
	for i in file.readlines():
		urls.append(i.strip())
	file.close()
	return urls

def main(urls, execute):
	for i in urls:
		os.system('wget %s' % i)
		os.system('execute %s' % i)



if __name__ == "__main__":
	urls = urls(sys.argv[1])
	main(urls, sys.argv[2])
ODPOWIEDZ