Wget
Z wiki linux-user
(Założenie strony) |
(opis) |
||
Linia 2: | Linia 2: | ||
== Polecenie wget == | == Polecenie wget == | ||
'''wget''' polecenie pozwala na pobranie pliku udostępnionych za pomocą np http lub ftp bezpośrednio za pomocą konsoli systemu Linux. | '''wget''' polecenie pozwala na pobranie pliku udostępnionych za pomocą np http lub ftp bezpośrednio za pomocą konsoli systemu Linux. | ||
+ | === Składnia === | ||
+ | wget [option]... [URL]... | ||
+ | === Opcje === | ||
+ | *-V, --version wyświetlenie wersji programu wget | ||
+ | *-h, --help wyświetla stronę help z opisem wszystkich opcji programu wget | ||
+ | *-b, --background przejdź do tła natychmiast po rozpoczęciu pobierania. Jeśli nie jest zdeklarowany plik wyjściowy poprzez opcję '''-o''' to wyjście przekierowane jest automatycznie do ''wget-log'' | ||
+ | *-e command, --execute command Wykonuje polecenie tak, jakby było częścią ''.wgetrc''. Polecenie wywołane w ten sposób zostanie wykonane po poleceniach z ''.wgetrc'', więc będzie mieć nad nimi priorytet | ||
+ | *-o dziennik, --output-file=dziennik rejestruje wszystkie komunikaty w pliku dziennika. Normalnie są zgłaszane na standardowym wyjściu błędów. | ||
+ | *-a dziennik, --append-output=dziennik dodaje komunikaty na końcu pliku dziennika. Jest to to samo, co '''-o''', tyle że dopisuje do dziennika zamiast nadpisywać stary. Jeśli plik dziennik nie istnieje, jest tworzony | ||
+ | *-q, --quiet tryb cichy. Wyłącza wyjście Wget | ||
+ | *-i plik, --input-file=plik czyta URL-e z pliku wejściowego plik, w związku z czym nie trzeba ich podawać w wierszu poleceń. Jeśli URL-e podano zarówno w wierszu poleceń, jak i w pliku wejściowym, to pierwsze zostaną pobrane pliki wymienione w wierszu poleceń. Plik nie musi być dokumentem HTML (ale nie przeszkadza, jeśli nim jest) -- wystarczy, że URL-e będą po prostu kolejno spisane. | ||
+ | Jednakże jeśli zostanie podana opcja --force-html, to plik będzie traktowany jak dokument html. Mogą się wówczas pojawić kłopoty z odnośnikami względnymi, które można rozwiązać dodając "<base href="url">" do pliku lub podając --base=url w wierszu poleceń. | ||
+ | *-F, --force-html kiedy wejście jest czytane z pliku, wymusza aby było traktowane jako HTML. Pozwala to na pobieranie względnych odnośników z istniejących plików HTML znajdujących się na lokalnym dysku naszego komputera, przez dodanie znacznika "<base href="url">" do pliku HTML lub użycie opcji --base. | ||
+ | *-B URL, --base=URL użyte w połączeniu z -F, stosuje URL jako podstawę dla odnośników względnych w pliku podanym przez -i. | ||
+ | *--bind-address=adres podczas tworzenia klienckich połączeń TCP/IP, wiąże z lokalnym komputerem, przez "bind()", zadany adres. Adres można podać jako nazwę hosta lub adres IP. Może się przydać jeśli nasza maszyna ma przypisane kilka adresów IP. | ||
+ | *-t liczba, --tries=liczba ustawia liczbę ponawiania prób na liczbę. Dla nieskończonego ponawiania podajemy 0 lub inf. | ||
+ | *-O plik, --output-document=plik dokumenty nie będą zapisywane do odpowiednich plików, ale wszystkie zostaną sklejone i zapisane do pliku. Jeśli plik istnieje, to zostanie nadpisany. Jeśli jako plik podano -, dokumenty będą zapisane na standardowe wyjście. Włączenie tej opcji automatycznie ustawia liczbę prób na 1. | ||
+ | *-c, --continue kontynuuje pobieranie częściowo ściągniętego pliku. Przydatne, gdy chcemy dokończyć ściąganie rozpoczęte lub w poprzednim przebiegu Wget lub przez inny program. | ||
+ | *--progress=typ umożliwia wskazanie typu wskaźnika postępu. Dozwolonymi rodzajami wskaźnika są ,,dot'' (kropka) i ,,bar'' (pasek). | ||
+ | *-N, --timestamping włącza stosowanie znaczników czasu (time-stamping). | ||
+ | *-S, --server-response wypisuje nagłówki wysyłane przez serwery HTTP i odpowiedzi wysyłane przez serwery FTP. | ||
+ | === Przykład === | ||
+ | Powiedzmy, że chcemy ściągnąć jakiś URL. Wystarczy napisać: | ||
+ | wget http://fly.srk.fer.hr/ | ||
+ | Ale co się stanie, jeśli łącze jest powolne, a plik długi? Połączenie prawdopodobnie zawiedzie zanim zostanie pobrany cały plik. W takiej sytuacji Wget będzie usiłował pobrać plik dopóki nie ściągnie całego albo nie przekroczy domyślnej liczby ponawiań (wynoszącą 20). Można łatwo zmienić liczbę prób na 45, by upewnić się, że cały plik dotrze bezpiecznie: | ||
+ | wget --tries=45 http://fly.srk.fer.hr/jpg/flyweb.jpg | ||
+ | A teraz pozostawmy program Wget pracujący w tle i zapisujący informacje o postępach ściągania do pliku dziennika log. Wpisywanie --tries jest męczące, więc użyjemy -t: | ||
+ | wget -t 45 -o log http://fly.srk.fer.hr/jpg/flyweb.jpg & | ||
+ | Znak "&" na końcu linijki zapewnia, że Wget będzie działać w tle. Ograniczenie liczby ponawiań można zlikwidować stosując -t inf.<br /> | ||
+ | Sposób użycia FTP jest równie prosty. Wget zajmie się nazwą zgłoszeniową (login) i hasłem. | ||
+ | wget ftp://gnjilux.srk.fer.hr/welcome.msg | ||
+ | Jeśli podamy katalog, to program pobierze jego listing, przetworzy go i przekształci na HTML. Można spróbować: | ||
+ | wget ftp://prep.ai.mit.edu/pub/gnu/ | ||
+ | inks index.html | ||
+ | === Zaawansowane zastosowania ==== | ||
+ | Mamy gotowy plik z listą URL-i, które chcemy pobrać? Wystarczy skorzystać z przełącznika -i: | ||
+ | wget -i I<plik> | ||
+ | Jeśli jako nazwę pliku podamy -, to URL-e będą czytane ze standardowego wejścia. | ||
+ | Stworzymy sięgający pięciu poziomów obraz lustrzany witryny WWW GNU (z tą samą strukturą katalogów, jaką ma oryginał), stosując tylko jedną próbę pobierania dla każdego dokumentu i zapisując dziennik pracy do gnulog: | ||
+ | wget -r http://www.gnu.org/ -o gnulog | ||
+ | To samo co powyżej, ale z konwersją odnośników w plikach HTML tak, żeby wskazywały na lokalne pliki, by można było przeglądać dokumenty off-line: | ||
+ | wget --convert-links -r http://www.gnu.org/ -o gnulog | ||
+ | Pobranie tylko jednej strony HTML, ale z upewnieniem się, że wszystkie elementy niezbędne do jej wyświetlenia (np. wstawione obrazki i zewnętrzne arkusze stylu) również zostaną pobrane. Zapewnia też, że ściągnięta strona wskazuje na pobrane odnośniki. Ponadto odnośniki w pobranej stronie powinny wskazywać na pobrane kopie elementów. | ||
+ | wget -p --convert-links http://www.server.com/dir/strona.html | ||
+ | Wybrana strona HTML zostanie zapisana do www.server.com/dir/strona.html, a obrazki, arkusze stylu itd. gdzieś w katalogu www.server.com/, zależnie od tego, gdzie znajdowały się na zdalnym serwerze.<br /> | ||
+ | Tak samo, jak wyżej, ale bez katalogu www.server.com/. W gruncie rzeczy wcale nie chcę tych wszystkich przypadkowych katalogów z serwera -- chcę po prostu zapisać wszystkie pobrane pliki w podkatalogu download/ bieżącego katalogu. | ||
+ | wget -p --convert-links -nH -nd -Pdownload http://www.server.com/dir/strona.html | ||
+ | Pobranie index.html z www.lycos.com, z pokazaniem oryginalnych, odebranych od serwera nagłówków: | ||
+ | wget -S http://www.lycos.com/ | ||
+ | Zapisanie nagłówków serwera w pliku, zapewne do końcowego przetwarzenia: | ||
+ | wget -s http://www.lycos.com/ | ||
+ | more index.html | ||
+ | Pobranie pierwszych dwu poziomów wuarchive.wustl.edu, z zapisaniem ich do /tmp. | ||
+ | wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu/ | ||
+ | Chcemy ściągnąć wszystkie GIF-y z pewnego katalogu serwera HTTP. Próbowaliśmy wget http://www.server.com/dir/*.gif, ale nie zadziałało, bo pobieranie HTTP nie realizuje masek plików. W takim przypadku stosujemy: | ||
+ | wget -r -l1 --no-parent -A.gif http://www.server.com/dir/ | ||
+ | Więcej pisaniny, ale skutek jest taki sam. -r -l1 oznacza pobieranie rekurencyjne, z maksymalną głębokością 1. --no-parent znaczy, że odwołania do katalogu nadrzędnego mają być ignorowane, a -A.gif oznacza ściąganie tylko plików GIF. Działałoby też -A "*.gif". | ||
+ | Załóżmy, że byliśmy w połowie ściągania, gdy nagle przerwano pracę Wget. Nie chcielibyśmy teraz nadpisywać już obecnych plików ponownie ściąganymi. Napisalibyśmy: | ||
+ | wget -nc -r http://www.gnu.org/ | ||
+ | Do zakodowania swojej nazwy użytkownika i hasła do HTTP lub FTP używamy odpowiedniej składni URL-a. | ||
+ | wget ftp://hniksic:mojehaslo@unix.server.com/.emacs | ||
+ | Należy jednak zauważyć, że w systemach wielodostępnych taki sposob użycia jest niezalecany, ponieważ ujawnia hasło każdemu, kto spojrzy na wynik działania "ps". A może chcielibyśmy, żeby dokumenty wynikowe były kierowane na standardowe wyjście, a nie zapisywane do plików? | ||
+ | wget -O - http://jagor.srce.hr/ http://www.srce.hr/ | ||
+ | Można też łączyć te dwie opcje i tworzyć potoki do pobierania dokumentów ze zdalnych list przebojów: | ||
+ | wget -O - http://cool.list.com/ | wget --force-html -i - | ||
+ | <br /> | ||
<br /><google1 style="4"></google1> | <br /><google1 style="4"></google1> |