Pobierz rekurencyjnie za pomocą wget

32

Mam problem z następującą komendą wget:

wget -nd -r -l 10 http://web.archive.org/web/20110726051510/http://feedparser.org/docs/

Powinien pobierać rekurencyjnie wszystkie połączone dokumenty w oryginalnej sieci, ale pobiera tylko dwa pliki ( index.htmli robots.txt).

Jak mogę uzyskać rekurencyjne pobieranie tej strony?

xralf
źródło

Odpowiedzi:

40

wgetdomyślnie honoruje standard robots.txt do indeksowania stron, podobnie jak wyszukiwarki, a dla archive.org nie zezwala na cały podkatalog / web /. Aby zastąpić, wykorzystanie -e robots=off,

wget -nd -r -l 10 -e robots=off http://web.archive.org/web/20110726051510/http://feedparser.org/docs/
Ulrich Schwarz
źródło
Dziękuję Ci. Czy jest jakaś opcja, aby zapisać każdy link tylko raz? Może powinienem zmniejszyć 10do niższej liczby, ale trudno zgadnąć. Teraz znajduje się plik introduction.html, introduction.html.1, introduction.html.2a ja raczej zakończony proces.
xralf
A linki kierują do sieci. Czy --mirroropcja łączy do systemu plików?
xralf
1
@ xralf: cóż, używasz -nd, więc różne index.htmls są umieszczane w tym samym katalogu, a bez tego -knie będziesz mieć przepisywania linków.
Ulrich Schwarz
12
$ wget --random-wait -r -p -e robots=off -U Mozilla \
    http://web.archive.org/web/20110726051510/http://feedparser.org/docs/

Pobiera rekurencyjnie treść adresu URL.

--random-wait - wait between 0.5 to 1.5 seconds between requests.
-r - turn on recursive retrieving.
-e robots=off - ignore robots.txt.
-U Mozilla - set the "User-Agent" header to "Mozilla". Though a better choice is a real User-Agent like "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)".

Inne przydatne opcje to:

--limit-rate=20k - limits download speed to 20kbps.
-o logfile.txt - log the downloads.
-l 0 - remove recursion depth (which is 5 by default).
--wait=1h - be sneaky, download one file every hour.
Nikhil Mulley
źródło
-l 0 - remove recursion depth (which is 5 by default)+1
Dani