Hallo, Am Tue, 06 Dec 2005, Heinz W. Pahlke schrieb:
On 05-Dec-2005 David Haller wrote:
Am Mon, 05 Dec 2005, evil-leeroy@web.de schrieb:
oder halt alle Dateinamen in ein File und dann mit....
for i in $(cat file.txt); do wget $i; done
Einfacher:
wget -i file_mit_urls
Warum so einfach, wenn es auch umstaendlich geht ;-))
Achso: Noch haeufiger verwende ich z.B.: irgendwas | wget -i - wobei '-' fuer 'stdin' steht (s. info wget) und 'irgendwas' fuer ein (meist perl-)script, das mir irgendwelche URLs aus ner zuvor gesaugten Webseite rauspopelt ;) Oder sowas: for i in `seq 0 10`; do printf "http://bla.fasel.suelz/%05i.htm\n" $i done | wget -i - Letzteres "regelt" bei einem Haufen von "Webcomics" ;)
PS: Um Missverstaendnissen vorzubeugen, das ist _keine_ Kritik an evil-leeroy@web.de, sondern dass ich man wget nicht gruendlich genug gelesen habe.
'info wget' ist die (w|r)ichtige Doku. 'man wget' ist IIRC zwar vollstaendig bzgl. Optionen, erklaert aber diverse Feinheiten nicht. Mir gefaellt an wget v.a. die Moeglichkeit einer ~/.wgetrc sowie die passenderen default-Optionen im Vergleich zu 'curl'. Mein Standard ist: 'wget -m -k -np $URL' Das reicht fuer mind. 95% aller Seiten, die ich saugen will ;) Ggfs. will ich nur '-p' statt '-m'; oder ergaenze mal ein -I / -A / -R oder sowas... Das obige 'wget -m -k -np' ist inzwischen so automatisiert, da lohnt sich nicht mal mehr ein shell-alias fuer ;) Stattdessen hab u.a. folgendes Alias: $ type wget-as-mozilla wget-as-mozilla is aliased to `wget -U "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021130"' Achso: via FTP kann wget sich per LIST die Dateiliste holen und auf diese das 'globbing' anwenden. Per HTTP bekommt man aber generell nur eine index.html\? bekommen, die alles moegliche sein kann und die meist nicht eine einfache Dateiliste ist. Globbing waere also zwecklos. Dein Problem liegt also bei HTTP vs. FTP. Und du musst somit die Ausgabe von 'wget http://foo/bar/' selber parsen, z.B. per 'lynx -dump | grep' oder | sed, oder | awk, oder | perl... Bequem wird die Sache wieder, wenn man gleich "fuer alles" perl verwendet: da holst du dir die Index-Datei per 'LWP::get', parst die Seite bequem in perl (ggfs. sogar per HTML::Parser o.ae.) und setzt die Folgerequests auch wieder per LWP ab -- oder per pipe an wget... z.B.: open(WGET, "| wget -i - ") or die "$!\n"; print WGET join("\n", @URLS); close WGET or die "$!\n"; Und dann gibt's noch WWW::Mechanize u.a. ;) Alles ungetestet! -dnh, obiges basierend auf 'wget 1.7' -- booting wetware is a critical process - it affects the systems mood