Jak pobrać wszystkie pliki (ale nie HTML) ze strony internetowej za pomocą wget?


162

Jak korzystać wgeti pobrać wszystkie pliki ze strony internetowej?

Potrzebuję wszystkich plików oprócz plików stron internetowych, takich jak HTML, PHP, ASP itp.


Nawet jeśli chcesz pobrać php, nie jest to możliwe za pomocą wget. Za pomocą wget możemy uzyskać tylko surowy HTML. Myślę, że znasz powód
Venkateshwaran Selvaraj

NB: Zawsze wget --spidernajpierw sprawdzaj u siebie i zawsze dodawaj -w 1(lub więcej -w 5), aby nie zalać serwera drugiej osoby.
izomorfizmy

1
Jak mogę pobrać wszystkie pliki PDF na tej stronie? pualib.com/collection/pua-titles-a.html

Stack Overflow to witryna zawierająca pytania dotyczące programowania i programowania. To pytanie wydaje się być niezwiązane z tematem, ponieważ nie dotyczy programowania ani programowania. Zobacz, o jakie tematy mogę zapytać w Centrum pomocy. Być może lepszym miejscem do zadawania pytań będzie Super User lub Unix & Linux Stack Exchange . Zobacz też Gdzie mogę zadawać pytania dotyczące operacji deweloperskich?
jww

Odpowiedzi:


262

Aby filtrować według określonych rozszerzeń plików:

wget -A pdf,jpg -m -p -E -k -K -np http://site/path/

Lub, jeśli wolisz długie nazwy opcji:

wget --accept pdf,jpg --mirror --page-requisites --adjust-extension --convert-links --backup-converted --no-parent http://site/path/

Spowoduje to odbicie witryny, ale pliki bez jpgpdf rozszerzenia lub rozszerzenia zostaną automatycznie usunięte.


17
Jeśli chcesz po prostu pobierać pliki bez całej architektury katalogów, możesz użyć opcji -nd .
diabloneo

4
co oznacza każda z flag?
Jürgen Paul

Myślę, że --acceptrozróżniana jest --accept pdf,jpg,PDF,JPG
wielkość

8
nie jestem pewien, czy jest to nowa wersja, wgetale musisz określić --progresstyp, np.--progress=dot
jamis

@Flimm możesz również użyć --ignore-caseflagi, aby nie --acceptrozróżniać wielkości liter.
Surowy

84

Spowodowało to pobranie całej witryny dla mnie:

wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/

20
+1 dla -e robots=off! To w końcu rozwiązało mój problem! :) Dzięki
NHDaly

12
--random-waitOpcja jest geniuszem;)
poitroae

2
@izilotti Czy właściciel witryny może dowiedzieć się, czy WGOTUJESZ pliki ich witryn za pomocą tej metody?
Elias7

1
@whatIsperfect To zdecydowanie możliwe.
Jack

1
@JackNicholsonn Skąd będzie wiedział właściciel witryny? Używanym agentem była Mozilla, co oznacza, że ​​wszystkie nagłówki zostaną wprowadzone jako przeglądarka Mozilla, a zatem wykrycie wget jako używanego nie będzie możliwe? Popraw, jeśli się mylę. dzięki
KhoPhi

63
wget -m -p -E -k -K -np http://site/path/

strona man powie ci, co robią te opcje.

wgetbędzie podążał tylko za linkami, jeśli nie ma linku do pliku ze strony indeksu, wgetnie będzie wiedział o jego istnieniu, a tym samym go nie pobierze. to znaczy. dobrze jest, jeśli wszystkie pliki są połączone na stronach internetowych lub w indeksach katalogów.


Dziękuję za odpowiedź :) Kopiuje całą stronę i potrzebuję tylko plików (tj. Txt, pdf, obraz itp.) Na stronie
Aniruddhsinh

25

Próbowałem pobrać pliki zip, do których linki znajdują się na stronie z motywami Omeki - całkiem podobne zadanie. To zadziałało dla mnie:

wget -A zip -r -l 1 -nd http://omeka.org/add-ons/themes/
  • -A: akceptuje tylko pliki zip
  • -r: recurse
  • -l 1: jeden poziom w głąb (tzn. tylko pliki bezpośrednio linkowane z tej strony)
  • -nd: nie twórz struktury katalogów, po prostu pobierz wszystkie pliki do tego katalogu.

Wszystkie odpowiedzi z -k, -K, -Eetc opcje chyba nie bardzo rozumie pytanie, jak te za przepisywanie stron HTML, aby lokalną strukturę, zmienianie nazw .phpplików i tak dalej. Nieistotne.

Aby dosłownie pobrać wszystkie pliki z wyjątkiem .html itp:

wget -R html,htm,php,asp,jsp,js,py,css -r -l 1 -nd http://yoursite.com

2
-Ajest rozróżniana -A zip,ZIP
wielkość

7

Możesz spróbować:

wget --user-agent=Mozilla --content-disposition --mirror --convert-links -E -K -p http://example.com/

Możesz również dodać:

-A pdf,ps,djvu,tex,doc,docx,xls,xlsx,gz,ppt,mp4,avi,zip,rar

zaakceptować określone rozszerzenia lub odrzucić tylko określone rozszerzenia:

-R html,htm,asp,php

lub aby wykluczyć określone obszary:

-X "search*,forum*"

Jeśli pliki są ignorowane dla robotów (np. Wyszukiwarek), musisz dodać również: -e robots=off


5

Spróbuj tego. U mnie to zawsze działa

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

5
wget -m -A * -pk -e robots=off www.mysite.com/

spowoduje to pobranie wszystkich typów plików lokalnie i wskaże je z pliku html i zignoruje plik robots


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.