Provided by:
manpages-pl_20060617-2_all 
NAZWA
wget - Podręcznik GNU Wget
SKŁADNIA
wget [opcja]... [URL]...
OPIS
GNU Wget jest darmowym programem narzędziowym do pobierania plików z
World Wide Web. Obsługuje protokoły HTTP, HTTPS i FTP, a także
pobieranie poprzez serwery proxy HTTP.
Wget potrafi podążać za odnośnikami zawartymi w stronach HMTL i tworzyć
lokalne wersje zdalnych witryn WWW, w pełni odtwarzając strukturę
katalogów oryginalnego ośrodka. Jest to czasami nazywane ,,pobieraniem
rekurencyjnym''. Podczas takiego działania Wget respektuje ustalenia
Standardu Robot Exclusion (/robots.txt). Możliwe jest poinstruowanie
programu, by w pobieranych plikach HTML przekształcał odnośniki tak,
aby wskazywały na lokalne kopie, do przeglądania bez połączenia.
Wget został zaprojektowany tak, by działać solidnie również przy
powolnych bądź niestabilnych połączeniach. Jeżeli pobieranie nie udaje
się z powodu problemów z siecią, ponawia próby aż do ściągnięcia
całości pliku. Jeśli dany serwer obsługuje taką możliwość, Wget nakaże
kontynuację pobierania od miejsca, w którym przerwano.
OPCJE
Podstawowe opcje uruchamiania
-V
--version
Wyświetla wersję Wget.
-h
--help
Wypisuje komunikat pomocy, opisujący wszystkie opcje, jakie można
przekazać Wget w wierszu poleceń.
-b
--background
Przechodzi w tło natychmiast po rozpoczęciu pracy. Jeśli nie
podano pliku wyjściowego za pomocą -o, wyjście jest przekierowywane
do wget-log.
-e polecenie
--execute polecenie
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.
Opcje dziennika i pliku wejściowego
-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.
-d
--debug
Włącza wyjście diagnostyczne, czyli wypisywanie rozmaitych
informacji ważnych dla twórców Wget, gdy nie działa on poprawnie.
Administrator twojego systemu mógł skopilować Wget bez obsługi
trybu usuwania błędów, wówczas -d nie będzie działać. Należy
zauważyć, że kompilacja z obsługą diagnostyki jest zawsze
bezpieczna -- Wget skompilowany w ten sposób nie będzie wypisywał
żadnych informacji diagnostycznych dopóki nie zażądamy tego opcją
-d.
-q
--quiet
Tryb cichy. Wyłącza wyjście Wget.
-v
--verbose
Pełne wyjście, z wszystkimi dostępnymi danymi. Jest to opcja
domyślna.
-nv
--non-verbose
Niepełne wyjście -- wyłącza pełne wyjście, ale nie ucisza
całkowicie (to robi się opcją -q); komunikaty o błędach i
podstawowe informacje będą nadal wypisywane.
-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.
Opcje ściągania
--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.
-nc
--no-clobber
Jeśli plik jest pobierany więcej niż raz do tego samego katalogu,
zachowanie się Wget zależy od kilku opcji, między innymi -nc. W
pewnych przypadkach istniejący lokalny plik będzie nadpisany,
przebity (ang. clobbered), przy powtórzeniu ściągania. W innych
przypadkach zostanie zachowany.
Przy uruchomieniu Wget bez opcji -N, -nc lub -r pobranie tego
samego pliku do tego samego katalogu spowoduje pozostawienie
pierwotnego egzemplarza pliku i nadanie drugiemu nazwy plik.1. Gdy
plik będzie ściągany kolejny raz, trzeci egzemplarz otrzyma nazwę
file.2, i tak dalej. Przy podanej opcji -nc, zachowanie takie jest
wstrzymywane, a Wget odmawia pobrania nowszych kopii pliku.
Dlatego też, ``"no-clobber"'' jest w rzeczywistości złą nazwą dla
tego trybu -- nie chroni on przed nadpisywaniem (gdyż temu
zapobiegają już numeryczne przyrostki), ale przed zachowywaniem
wielu wersji pliku.
Przy uruchomieniu Wget z -r, ale bez -N czy -nc, ponowne
ściągnięcie pliku powoduje, że nowa kopia po prostu nadpisuje
starą. Dodanie -nc zapobiega takiemu zachowaniu, skutkując zamiast
tego zachowaniem pierwotnej wersji i ignorowaniem ewentualnych nowe
kopii z serwera.
Przy uruchomieniu Wget z -N, z opcją -r lub bez niej, decyzja, czy
ściągać nową wersję pliku czy też nie, zależy od znaczników czasu
(dat modyfikacji) i rozmiarów lokalnego i zdalnego pliku. -nc nie
można podawać równocześnie z -N.
Zauważ, że jeśli podano -nc, pliki z przyrostkami .html lub .htm
(fuj) będą odczytywane z dysku i przetwarzane tak, jakby zostały
pobrane z Sieci.
-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. Na przykład:
wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z
Jeśli w bieżącym katalogu istnieje plik ls-lR.Z, Wget przyjmie, że
jest to początkowy fragment zdalnego pliku i zażąda od serwera
kontynuacji pobierania od offsetu równego długości lokalnego pliku.
Zauważ, że nie ma potrzeby podawania tej opcji jeśli chcemy tylko,
by aktualnie wywołany Wget ponownie próbował ściągać plik, w
połowie którego zostało zerwane połączenie. Jest to zachowanie
domyślne. Opcja -c wpływa tylko na wznawianie pobrań zaczętych
przed bieżącym wywołaniem Wget i tylko dla tych plików, których
lokalne kopie nadal istnieją.
Bez -c, polecenie z poprzedniego przykładu pobrałby po prostu
zdalny plik do ls-lR.Z.1, pozostawiając w spokoju obcięty plik ls-
lR.Z.
Począwszy od Wget 1.7, jeśli użyjemy -c dla niepustego pliku, a
okaże się, że serwer nie obsługuje kontynuacji ściągania, to
program odmówi rozpoczęcia ściągania od zera, które prowadziłoby do
zniszczenia istniejącej zawartości. Jeśli naprawdę chcemy ściągać
od początku, powinniśmy usunąć taki plik.
Również od wersji 1.7, jeśli użyjemy -c dla pliku, którego rozmiar
jest taki sam, jak na serwerze, to Wget odmówi ściągnięcia pliku i
wypisze komunikat objaśniający. Tak samo dzieje się, gdy plik jest
mniejszy na serwerze niż lokalnie (prawdopodobnie dlatego, że
został zmieniony na serwerze od czasu naszej ostatniej próby
ściągania) -- ponieważ ,,kontynuacja'' jest bezsensowna, pobieranie
nie zachodzi.
Z drugiej strony, przy stosowaniu -c, każdy plik, który jest
większy na serwerze niż lokalnie będzie uważany za nie w pełni
ściągnięty. Wówczas pobranych i doczepionych na koniec pliku
lokalnego zostanie tylko "(length(zdalny) - length(lokalny))"
bajtów. W pewnych przypadkach takie zachowanie jest pożądane -- na
przykład, można skorzystać z wget -c do ściągnięcia tylko nowej
porcji danych, dopisanej na końcu zbioru danych czy pliku
dziennika.
Jednakże, jeśli plik na serwerze jest większy dlatego, że został
zmieniony, a nie tylko doklejono do niego dane, to w efekcie
otrzymamy zniekształcony plik. Wget w żaden sposób nie może
sprawdzić, czy lokalny plik jest poprawną częścią początkową
zdalnego. Należy na to szczególnie uważać stosując -c w połączeniu
z -r, gdyż każdy plik będzie uważany za kandydata na "nieukończone
ściąganie".
Inną sytuacja, w której przy korzystaniu z -c uzyskuje się
zniekształcony plik, zachodzi, gdy mamy do czynienia z ułomnym
proxy HTTP, wstawiającym łańcuch ,,transfer interrupted'' do
lokalnego pliku. W przyszłości będzie może dodana opcja
,,rollback'', obsługująca ten przypadek.
Zauważ, że -c działa tylko z serwerami FTP i HTTP, które obsługują
nagłówek "Range".
--progress=typ
Umożliwia wskazanie typu wskaźnika postępu. Dozwolonymi rodzajami
wskaźnika są ,,dot'' (kropka) i ,,bar'' (pasek).
Domyślnie stosowany jest wskaźnik ,,bar''. Rysowany jest wówczas
pasek postępu złożony ze znaków graficznych ASCII (zwany czasem
wskaźnikiem ,,termometrowym''), wskazujący stan pobierania. Jeżeli
wyjściem programu nie jest TTY, to domyślnie zostanie użyty
wskaźnik typu ,,dot''.
W celu przełączenia na wyświetlanie kropek należy użyć
--progress=dot. Postępy ściągania pokazują wtedy wypisywane na
ekranie kropki, z których każda symbolizuje ustaloną ilość
pobranych danych.
Przy korzystaniu z tego wskaźnika, można także ustalić styl.
Wykonuje się to podając typ wskaźnika w postaci dot:styl. W różnych
stylach pojedynczej kropce przypisuje się różne znaczenie. W stylu
"default" każda kropka oznacza 1K, grupa liczy dziesięć kropek, a
wiersz 50 kropek. Styl "binary" jest bardziej ,,komputerowy'' --
8K dla skropki, 16-kropkowe grupy i 48 kropek w wierszu (co daje
384K na wiersz). Przy pobieraniu bardzo dużych plików odpowiedni
jest styl "mega" -- każda kropka symbolizuje pobrane 64K, w grupie
jest osiem kropek, a w wierszu 48 (więc każdy wiersz zawiera 3M).
Warto zauważyć, że domyślny rodzaj wskaźnika postępu możemy ustalić
umieszczając w pliku .wgetrc polecenie "progress". Takie ustawienie
jest przesłaniane przez opcję podaną w wierszu poleceń. Wyjątek
stanowi sytuacja, kiedy wyjściem nie jest TTY -- wówczas typ
,,dot'' będzie miał pierwszeństwo nad ,,bar''. Da się jednak
wymusić wskaźnik w postaci paska, stosując --progress=bar:force.
-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.
--spider
Wywołąny z tą opcją, Wget będzie zachowywał się jak sieciowy pajk
(Web spider), to znaczy, że nie będzie pobierał stron, a jedynie
sprawdzał, czy tam są. Można to wykorzystać to sprawdzenia
zakładek (bookmarks), na przykład tak:
wget --spider --force-html -i bookmarks.html
Ta funkcja wymaga jeszcze wiele pracy, by Wget osiągnął możliwości
zbliżone do prawdziwych pająków WWW.
-T seconds
--timeout=sekundy
Ustawia limit czasu czytania na podaną liczbę sekund. Przy każdym
odczycie sieciowym sprawdzana jest dla deskryptora pliku
ewentualność przekroczenia limitu czasu, ponieważ bez tego mogło by
dojść do nieprzerwanego czytania (zostawienia zawieszonego
połączenia). Domyślny limit to 900 sekund (piętnaście minut).
Ustawienie limitu na 0 wyłącza sprawdzanie.
Proszę nie obniżać domyślnej wartości limitu czasu tą opcją, chyba
że z pełną świadomością skutków.
--limit-rate=wielko
Ogranicza prędkości pobierania do wielko bajtów na sekundę.
Wielkość tę można wyrazić w bajtach, kilobajtach (przyrostkiem k)
lub megabajtach (przyrostkiem m) na sekundę. Na przykład --limit-
rate=20k ograniczy prędkość ściągania do 20KB/s. Taka rzecz
przydaje się, gdy z jakiegoś powodu nie chcemy, żeby Wget zajął
całą dostępną szerokość pasma.
Należy zauważyć, że Wget realizuje to w ten sposób, że po
stwierdzeniu, iż odczyt z sieci zabrał mniej czasu, niż wynika to z
podanej prędkości, przez odpowiedni czas wstrzymuje się od
działania (zasypia). Końcowym efektem takiej strategii jest
spowolnienie transferu TCP mniej więcej do podanej prędkości.
Niemniej jednak, na osiągnięcie tej równowagi potrzeba trochę
czasu, więc nie bądźcie zaskoczeni, jeśli ograniczenie szybkości
nie działa dla bardzo małych plików. Tak samo, strategia
"zasypiania" nie zda egzaminu, jeśli poda się zbyt małe pasmo,
dajmy na to mniejsze niż 1,5KB/s.
-w sekundy
--wait=sekundy
Odczekuje zadaną liczbę sekund pomiędzy kolejnymi pobraniami.
Zaleca się używanie tej opcji, gdyż zmniejsza obciążenie serwera
dzięki rzadszym żądaniom. Czas, zamiast w sekundach, można podać w
minutach dodając przyrostek "m", w godzinach - dodając "h" lub w
dniach - dodając "d".
Określanie dużej wartości tej opcji przydaje się jeśli sieć lub
maszyna docelowa są wyłączone. Wówczas Wget może odczekać
wystarczająco długo, by rozsądnie spodziewać się, że przed ponowną
próbą błąd sieci został naprawiony.
--waitretry=sekundy
Opcję tę stosujemy jeśli nie chcemy, by Wget czekał pomiędzy kadym
pobraniem, a tylko pomiędzy ponawianymi próbami nieudanych pobrań.
Wget zastosuje odczekiwanie liniowe (linear backoff), czekając 1
sekundę po pierwszym niepowodzeniu z danym plikiem, następnie 2
sekundy po drugim niepowodzeniu z tym plikiem, aż do maksymalnej
liczby sekund, jaką podano. Zatem, wartość 10 faktycznie
spowoduje, że Wget będzie odczekiwał łącznie do (1 + 2 + ... + 10)
= 55 sekund na każdy plik.
Zauważ, że w ogólnosystemowym pliku wgetrc ta opcja jest domyślnie
włączona.
--random-wait
W niektórych z ośrodków wykonywana jest analiza plików
dziennikowych (tzw. logów), która ma na celu zidentyfikowanie
programów do pobierania, takich jak Wget. Polega ona na
wyszukiwaniu statystycznie znaczących podobieństw między różnicami
czasu, jaki upłynął pomiędzy kolejnymi żądaniami. Ta opcja
powoduje, że dla zamaskowania przed takimi analizami obecności
Wgeta czas pomiędzy żądaniami będzie się wahać od 0 do 2 * sekundy,
gdzie sekundy podano opcją --wait (-w).
W jednym z ostatnich artykułów w pewnej publikacji poświęconej
rozwijaniu oprogramowania na popularnych platformach klienckich
podano kod wykonujący taką analizę na bieżąco. Autor sugerował
blokowanie na poziomie adresu klasy C, co ma gwarantować, że
programy pobierające zostaną zablokowane niezależnie od zmiany
adresów przedzielanych przez DHCP.
Opcja --random-wait powstała z powodu tej właśnie nierozważnej
porady, zalecającej blokowanie wielu postronnych użytkowników
ośrodka z powodu działań jednego z nich.
-Y on/off
--proxy=on/off
Włącza/wyłącza używanie proxy. Domyślnie używanie proxy jest
włączone jeśli jest zdefiniowana odpowiednia zmienna środowiskowa.
-Q wielko
--quota=wielko
Określa ograniczenie wielkości pobieranych danych przy ściąganiu
automatycznym. Limit podawany jest w bajtach (domyślnie),
kilobajtach (z przyrostkiem k) lub megabajtach (z przyrostkiem m).
Warto pamiętać, że ograniczenie to nigdy nie dotyczy pobierania
pojedynczego pliku. Tak więc, jeśli podamy wget -Q10k
ftp://wuarchive.wustl.edu/ls-lR.gz, to zostanie ściągnięty cały
plik ls-lR.gz. Tak samo dzieje się nawet wówczas, gdy w wierszu
poleceń zostanie wyszczególnionych kilka URL-i. Ograniczenie
wielkości jest jednak przestrzegane podczas pobierania
rekurencyjnego lub według pliku wejściowego. Zatem, można spokojnie
napisać wget -Q2m -i witryny -- po przekroczeniu ograniczenia
ściąganie zostanie przerwane.
Ustawienie limitu na 0 lub na inf znosi ograniczenie pobierania.
Opcje katalogów
-nd
--no-directories
Nie tworzy hierarchii katalogów przy pobieraniu rekurencyjnym. Po
włączeniu tej opcji wszystkie pliki będą zapisywane do bieżącego
katalogu bez przebijania (jeśli nazwa pojawi się więcej niż raz,
nazwy plików otrzymają rozszerzenie .n).
-x
--force-directories
Przeciwieństwo -nd. Wymusza utworzenie hierarchii katalogów nawet
jeśli nie miałaby być stworzona. Np. wget -x
http://fly.srk.fer.hr/robots.txt zapisze ściągnięty plik jako
fly.srk.fer.hr/robots.txt.
-nH
--no-host-directories
Wyłącza tworzenie katalogów z nazwą hosta jako przedrostkiem.
Domyślnie, -r http://fly.srk.fer.hr/ spowoduje stworzenie struktury
katalogów zaczynającej się od fly.srk.fer.hr/, gdzie trafi cała
reszta. Ta opcja wyłącza takie zachowanie.
--cut-dirs=liczba
Ignoruje podaną liczb składowych katalogu. Przydatne do
precyzyjnego sterowania katalogami, w których będą składowane pliki
z pobierania rekurencyjnego.
Weźmy, na przykład, katalog ftp://ftp.xemacs.org/pub/xemacs/.
Jeżeli pobierzemy go z -r, to lokalnie zostanie zachowany jako
ftp.xemacs.org/pub/xemacs/. Mimo że opcja -nH pozwala na usunięcie
części ftp.xemacs.org/, nadal utkniemy z pub/xemacs. Tu właśnie z
pomocą przychodzi --cut-dirs. Powoduje, że Wget ``nie widzi''
zadanej liczby składowych zdalnego katalogu. Oto kilka przykładów
pokazujących, jak działa opcja --cut-dirs.
No options -> ftp.xemacs.org/pub/xemacs/
-nH -> pub/xemacs/
-nH --cut-dirs=1 -> xemacs/
-nH --cut-dirs=2 -> .
--cut-dirs=1 -> ftp.xemacs.org/xemacs/
...
Jeśli chcemy po prostu pozbyć się struktury katalogów, to opcja ta
jest podobna do kombinacji -nd i -P. Jednak --cut-dirs, w
przeciwieństwie do -nd, nie pozbywa się podkatalogów -- na
przykład, przy -nH --cut-dirs=1, podkatalog beta/ będzie, zgodnie z
oczekiwaniami, umieszczony w xemacs/beta.
-P prefiks
--directory-prefix=prefiks
Ustawia przedrostek, prefiks katalogów na prefiks. Przedrostek
katalogw oznacza katalog, zostaną zapisane wszystkie inne pliki i
katalogi, tzn. wierzchołek drzewa pobierania. Domyślnym
przedrostkiem jest ., katalog bieżący.
Opcje HTTP
-E
--html-extension
Jeśli pobierany jest plik typu text/html a jego URL nie kończy się
wyrażeniem regularnym \.[Hh][Tt][Mm][Ll]?, to opcja ta spowoduje
dodanie przyrostka .html do lokalnej nazwy pliku. Przydatne, na
przykład, gdy tworzymy kopię lustrzaną witryny, która używa stron
.asp, ale chcemy, by pozyskane strony dawały się przeglądać za
pomocą własnego serwera Apache. Innym dobrym zastosowaniem jest
pobieranie wyjścia generowanego przez skrypty CGI. URL typu
http://site.com/article.cgi?25 zostanie zachowany jako
article.cgi?25.html.
Zauważ, że pliki o zmienionych w ten sposób nazwach będą ponownie
pobierane za każdym razem gdy będziemy odświeżać kopię lustrzaną
witryny. Dzieje się tak, ponieważ Wget nie potrafi stwierdzić, że
lokalny plik X.html odpowiada zdalnemu URL-owi X (gdyż nie wie, że
ten URL tworzy wyjście typu text/html). Chcąc uniknąć ponownego
pobierania, trzeba użyć -k i -K, tak by oryginalna wersja pliku
została zachowana jako X.orig.
--http-user=uytkownik
--http-passwd=haso
Określają nazwę użytkownika i hasło, które Wget prześle serwerowi
HTTP. W zależności od rodzaju protokołu wezwanie-odpowiedź, Wget
koduje je stosując albo uwierzytelnianie podstawowe ("basic",
niechronione) albo w oparciu o skrót ("digest").
Inną metodę podania nazwy i hasła użytkownika jest wyszczególnienie
ich w samym URL-u. Obie te metody ujawniają hasło każdemu, kto
zechce uruchomić "ps". Żeby uchronić hasła przed podpatrzeniem,
należy przechowywać je w pliku .wgetrc lub .netrc i, za pomocą
"chmod", zapewnić tym plikom ochronę przed innymi użytkownikami.
Jeżeli hasła są naprawdę ważne, w tych plikach też nie trzymajcie
ich na stałe -- usuńcie je z plików zaraz po rozpoczęciu przez
Wgeta pobierania. Dokładniejsze omówienie kwestii bezpieczeństwa w
pracy z Wget,
-C on/off
--cache=on/off
Jeśli ustawione na off, wyłącza buforowanie po stronie serwera. W
takim przypadku Wget wysyła zdalnemu serwerowi odpowiednią komendę
(Pragma: no-cache), dzięki której plik zostanie pobrany z usługi
zdalnej, a nie zwrócona wersja buforowana. Jest to szczególnie
przydatne do pobierania i wymiatania przeterminowanych dokumentów z
serwerów proxy.
Domyślnie, buforowanie jest dozwolone.
--cookies=on/off
Ustawione na off wyłącza używanie ciasteczek (cookies). Ciasteczka
są mechanizmem do przechowywania stanu po stronie serwera. Serwer
przesyła klientowi ciasteczko stosując nagłówek "Set-Cookie", a
klient przy późniejszych żądaniach odpowiada tym samym
ciasteczkiem. Ponieważ ciasteczka umożliwiają właścicielom serwera
prowadzenie rejestrów gości i wymianę się tymi informacjami z
innymi ośrodkami, niektórzy uważają je za pogwałcenie prywatności.
Domyślnie cookies są używane, jednak ich zapisywanie nie jest
domyślnie włączone.
--load-cookies plik
Przed pierwszym pobraniem HTTP wczytuje ciasteczka z pliku. Pliku
jest plikiem tekstowym w formacie, jaki pierwotnie zastosowano dla
pliku cookies.txt przeglądarki Netscape.
Na ogół korzysta się z tej opcji przy tworzeniu kopii lustrzanych
tych ośrodków, które do skorzystania z części lub całości zasobów
wymagają zalogowania się. Proces logowania się zwykle polega na
tym, że po otrzymaniu od nas informacji uwierzytelniającej i jej
zweryfikowaniu serwer WWW wysyła ciasteczko HTTP. Następnie, gdy
przeglądarka sięga do zasobów, odsyła serwerowi otrzymane
ciasteczko, potwierdzając w ten sposób naszą tożsamość.
Utworzenie kopii tego rodzaju witryny wymaga wysyłania przez Wget
takich samych ciasteczek, jakie podczas komunikowania się z tym
ośrodkiem przesyła nasza przeglądarka. Osiąga się to za pomocą
--load-cookies -- wystarczy wskazać programowi lokalizację pliku
cookies.txt, a on wyśle te same ciasteczka, które w tej samej
sytuacji wysłałaby przyglądarka.
Różne przeglądarki trzymają tekstowe pliki ciasteczek w różnych
miejscach:
Netscape 4.x
Ciasteczka są w ~/.netscape/cookies.txt.
Mozilla i Netscape 6.x
Plik ciasteczek Mozilli nazywa się również cookies.txt, jest
położony gdzieś w ~/.mozilla, w katalogu właściwym dla profilu
użytkownika. Pełna ścieżka zazwyczaj kończy się czymś w rodzaju
~/.mozilla/default/co-dziwnego/cookies.txt.
Internet Explorer
Ciasteczko, jakiego mógłby użyć Wget, można utworzyć
korzystając z menu "Plik" i opcji "Importuj i Eksportuj",
"Eksportuj pliki cookie". Zostało to przetestowane z Internet
Explorerem 5 -- nie ma gwarancji, że będzie działać z
wcześniejszymi wersjami.
inne przeglądarki
Jeżeli do tworzenia ciasteczek korzystacie z innej
przeglądarki, --load-cookies będzie działać tylko wtedy, gdy
uda wam się zlokalizować lub utworzyć plik ciasteczek w
formacie Netscape, jakiego oczekuje Wget.
Jeśli nie możecie skorzystać z --load-cookies, jest jeszcze inna
możliwość. Jeśli używana przez was przeglądarka udostępnia
,,menedżera plików cookie'', skorzystajcie z niego, żeby podglądnąć
ciasteczka, jakie zostały wykorzystane podczas uzyskiwania dostępu
do witryny, której kopię chcecie utworzyć. Zapiszcie nazwę i
wartość ciasteczka, a następnie ręcznie nakażcie Wgetowi wysłanie
ciasteczka o zadanej postaci, obchodząc równocześnie ,,oficjalny''
kodu odpowiedzialny za obsługę ciasteczek:
wget --cookies=off --header "Cookie: I<nazwa>=I<wartość>"
--save-cookies plik
Na koniec sesji zapisuje ciasteczka do pliku. Ciasteczka, dla
których nie określono daty ważności lub które już wygasły, nie są
zapisywane.
--ignore-length
Niestety, niektóre serwery HTTP (dokładniej mówiąc, programy CGI)
wysyłają błędne nagłówki "Content-Length", co powoduje, że Wget
głupieje, sądząc, że nie została pobrana całość dokumentu. Syndrom
ten można uchwycić, gdy Wget próbuje w kółko pobierać ten sam
dokument, za każdym razem twierdząc, że (inaczej niż zwykle)
połączenie zostało zamknięte na dokładnie tym samym bajcie.
Wywołany z tą opcją, Wget będzie ignorował nagłówek
"Content-Length", tak jakby nie istniał.
--header=dodatkowy-nagwek
Określa dodatkowy-nagwek przesyłany serwerom HTTP. Nagłówki
muszą zawierać : poprzedzony co najmniej jednym niepustym znakiem,
i nie mogą zawierać znaków nowej linii.
Możliwe jest określenie więcej niż jednego dodatkowego nagłówka
przez kilkakrotne podanie opcji --header.
wget --header='Accept-Charset: iso-8859-2' \
--header='Accept-Language: hr' \
http://fly.srk.fer.hr/
Podanie pustego łańcucha jako nagłówka kasuje wszystkie uprzednio
zdefiniowane przez użytkownika nagłówki.
--proxy-user=uytkownik
--proxy-passwd=haso
Określają nazwę użytkownika i hasło, które zostaną użyte do
uwierzytelniania na serwerze proxy. Wget koduje je stosując
podstawowy ("basic") schemat uwierzytelniania.
Odnoszą się do tego podobne zagadnienia związane z bezpieczeństwem,
jak w przypadku opcji --http-passwd.
--referer=url
Zamieszcza nagłówek `Referer: url' w żądaniu HTTP. Przydatne do
pobierania dokumentów z takim przetwarzaniem po stronie serwera,
które zakłada, że są one zawsze pobierane przez interaktywne
przeglądarki Sieci i uznawane za poprawne tylko wtedy, gdy Refer
jest ustawione na jedną ze stron, które na nie wskazują.
-s
--save-headers
Zapisuje nagłówki wysyłane przez serwer HTTP do pliku, przed
właściwą zawartością, z pustą linią jako separatorem.
-U nazwa-agenta
--user-agent=nazwa-agenta
Serwerowi HTTP przedstawia się jako agent o podanej nazwie.
Protokół HTTP pozwala klientom na podanie, za pomocą pola
"User-Agent" nagłówka, swojej tożsamości. Umożliwia to
rozróżnianie oprogramowania WWW, zwykle do celów statystycznych lub
śledzenia naruszeń protokołu. Wget normalnie przedstawia się jako
Wget/wersja, gdzie wersja jest aktualnym numerem wersji programu.
Znane są jednak pewne witryny narzucające politykę przykrawania
wyników stosownie do informacji dostarczonej im w polu
"User-Agent". Mimo iż koncepcyjnie nie jest to taki zły pomysł,
zaczął być nadużywany przez serwery odmawiające informacji klientom
innym niż "Mozilla" lub "Internet Explorer". Ta opcja umożliwia
zmianę linii "User-Agent" wysyłanej przez Wget. Nie zachęcamy do
używania tej opcji, chyba że z pełną świadomością.
Opcje FTP
-nr
--dont-remove-listing
Zakazuje usuwania tymczasowych plików .listing generowanych przez
odczyty FTP. Normalnie, pliki te zawierają nieprzetworzone
listingi katalogów otrzymane z serwerów FTP. Pozostawienie ich
może się przydać do celów diagnostycznych lub łatwego sprawdzenia
zawartości katalogów zdalnego serwera (np. do sprawdzenia, że
tworzona kopia lustrzana jest kompletna).
Zauważ, że, mimo iż Wget zapisuje w tym przypadku do pliku o znanej
nazwie, nie jest to dziura w zabezpieczeniach w sytuacji, gdy
użytkownik stworzy .listing jako dowiązanie symboliczne do
/etc/passwd czy innego pliku i poprosi superużytkownika ("root") o
uruchomienie Wget w tym katalogu. W zależności od użytych opcji,
Wget albo odmówi zapisu do .listing (co spowoduje niepowodzenie
operacji na maskach, rekurencyjnej czy zależnej od znaczników
czasu), albo dowiązanie symboliczne zostanie usunięte i zastąpione
faktycznym plikiem .listing, albo też listing zostanie zapisany do
pliku .listing.numer.
Choć ta sytuacja nie stwarza kłopotów, jednak "root" nie powinien
nigdy uruchamiać Wget w katalogu niezaufanego użytkownika.
Użytkownik taki mógłby na przykład dowiązać index.html do
/etc/passwd i poprosić "root"a o uruchomienie Wget z opcjami -N lub
-r, tak że plik ten zostałby nadpisany.
--retr-symlinks
Zwykle, gdy podczas rekurencyjnego pobierania katalogów FTP
napotkane zostanie dowiązanie symboliczne, to wskazywany przez nie
plik nie jest ściągany. Zamiast tego w lokalnym systemie plików
tworzone jest odpowiadające mu dowiązanie symboliczne. Wskazywany
przez dowiązanie plik nie zostanie ściągnięty, chyba że pobieranie
rekurencyjne natknie się nań osobno i tak czy owak ściągnie.
Przy podanej opcji --retr-symlinks, jednakże, program podąża za
dowiązaniami symbolicznymi i pobiera wskazywane przez nie pliki.
Obecnie opcja ta nie spowoduje, by Wget podążał za dowiązaniami do
katalogów i przetwarzał je rekurencyjnie, ale w przyszłości powinna
zostać poszerzona tak, by tak się działo.
Zauważ, że przy pobieraniu pliku (nie katalogu) wynikającym z
podania go w wierszu poleceń, a nie jako w następstwie rekurencji,
opcja ta nie działa. W tym przypadku Wget zawsze podąża za
dowiązaniami.
-g on/off
--glob=on/off
Włącza/wyłącza obsługę masek dla FTP. Obsługa masek oznacza, że
można używać znaków specjalnych, uoglniajcych (jokerów), takich
jak *, ?, [ i ], do pobrania większej liczby plików z tego samego
katalogu naraz, np.
wget ftp://gnjilux.srk.fer.hr/*.msg
Domyślnie obsługa masek będzie włączona jeśli URL zawiera znaki
uogólniające. Tej opcji można użyć do włączenia bądź wyłączenia
obsługi masek na stałe.
Może zajść potrzeba ujęcia URL-a w znaki cudzysłowu, by uchronić go
przed rozwinięciem przez powłokę. Obsługa masek powoduje, że Wget
oczekuje listingu katalogu, którego postać jest zależna od systemu.
Z tego powodu obecnie działa tylko z uniksowymi serwerami FTP (i z
tymi, które potrafią emulować wyjście uniksowego "ls").
--passive-ftp
Powoduje korzystanie z pasywnego schematu pobierania FTP, w którym
klient inicjuje połączenie do przesyłania danych. Jest on czasem
wymagany, by FTP działał za zaporami ogniowymi.
Opcje pobierania rekurencyjnego
-r
--recursive
Włącza pobieranie rekurencyjne.
-l gboko
--level=gboko
Podaje maksymalny poziom głębokości rekurencji. Domyślnie jest to
5.
--delete-after
Ta opcja nakazuje Wget usunięcie każdego z plików, jaki pobiera, po
wykonaniu ściągania. Jest przydatna do pobierania wstępnego
(prefetching) popularnych stron poprzez proxy, np.:
wget -r -nd --delete-after http://whatever.com/~popular/page/
Opcja -r nakazuje pobieranie rekurencyjne, a -nd nietworzenie
katalogów.
Zauważ, że --delete-after usuwa pliki z lokalnego komputera. Nie
wydaje polecenia DELE, na przykład zdalnym ośrodkom FTP. Zauważ
też, że jeśli podano --delete-after, to --convert-links jest
ignorowane, więc przede wszystkim pliki .orig po prostu nie są
tworzone.
-k
--convert-links
Po zakończeniu pobierania konwertuje odnośniki w dokumencie tak, by
nadawały się do lokalnego przeglądania. Dotyczy to nie tylko
widzialnych odnośników hipertekstowych, ale każdej części
dokumentu, która prowadzi do zewnętrznych materiałów, jak osadzone
obrazki, odnośniki do arkuszy stylów, odnośniki hipertekstowe do
zawartości innej niż HTML, itp.
Każdy odnośnik będzie zmieniony na jeden z dwu sposobów:
o Odnośniki do plików, które zostały ściągnięte przez Wget
zostaną zmienione tak, by odwoływały się do pliku, na jaki
wskazują, jako odnośniki względne.
Przykład: jeśli ściągnięty plik /foo/doc.html jest powiązany z
z /bar/img.gif, również ściągniętym, to odnośnik w doc.html
zostanie zmieniony tak, by wskazywał na ../bar/img.gif. Ten
rodzaj przekształcenia działa bezproblemowo dla dowolnej
kombinacji katalogów.
o Odnośniki do plików, które nie zostały ściągnięte przez Wget
zostaną zmienione tak, by zawierały nazwę hosta i ścieżkę
bezwzględną miejsca, na które wskazują.
Przykład: jeśli ściągnięty plik /foo/doc.html jest powiązany z
z /bar/img.gif (lub z ../bar/img.gif), to odnośnik w doc.html
zostanie zmieniony tak, by wskazywał na
http://hostname/bar/img.gif.
Z tego powodu, przeglądanie lokalne działa niezawodnie: jeśli
powiązany plik był ściągnięty, to odnośnik wskazuje na jego lokalną
nazwę, jeśli nie był -- to na pełny adres internetowy, a nie
pojawia się popsuty odnośnik. Konwersja pierwotnych odnośników na
odnośniki względne zapewnia nam możliwość przesuwania pobranej
hierarchii katalogów do innego katalogu.
Zauważ, że dopiero na samym końcu pobierania Wget może rozpoznać,
które odnośniki zostały ściągnięte. Z tego powodu, opcja -k
wykonuje swoją pracę po zakończeniu wszystkich pobrań.
-K
--backup-converted
Podczas konwersji pliku zachowuje kopię zapasową pierwotnej wersji
z przyrostkiem .orig. Wpływa na zachowanie opcji -N.
-m
--mirror
Włącza opcje odpowiednie do tworzenia kopii lustrzanych. Ta opcja
włącza rekurencję, stosowanie znaczników czasu, ustawia
nieograniczony poziom rekurencji i zachowuje listingi katalogów
FTP. Obecnie jest równoważna użyciu -r -N -l inf -nr.
-nr
--dont-remove-listing
Zakazuje usuwania plików tymczasowych .listing tworzonych przez
odczyty FTP. Normalnie, pliki te zawierają nieprzetworzone
listingi katalogów otrzymane z serwerów FTP. Pozostawienie ich
daje dostęp do pełnej listy zdalnych plików przy prowadzeniu
siedziby lustrzanej. Przydaje się też do celów diagnostycznych.
-p
--page-requisites
Ta opcja powoduje, że Wget ściągnie wszystkie pliki niezbędne do
poprawnego wyświetlenia danej strony HTML. Obejmuje to takie
rzeczy jak grafikę, dźwięki i powiązane arkusze stylów.
Przy zwykłym trybie pracy, podczas pobierania pojedynczej strony
HTML, ewentualne powiązane dokumenty, które mogą być potrzebne do
poprawnego jej wyświetlenia, nie są pobierane. Pomóc może użycie
opcji -r z -l, ale ponieważ Wget normalnie nie odróżnia dokumentów
zewnętrznych od włączonych, na ogół pozostaje się z ,,oskubanymi
dokumentami'', którym brakuje potrzebnych elementów towarzyszących.
Na przykład, powiedzmy, że dokument 1.html zawiera znacznik "<IMG>"
odnoszący się do 1.gif i znacznik "<A>" wskazujący na zewnętrzny
dokument 2.html. Powiedzmy, że 2.html jest podobny, tyle, że jego
obrazkiem jest 2.gif a odnośnik wskazuje na 3.html. Załóżmy, że
kontynuujemy takie zależności aż do jakiejś dowolnie dużej liczby.
Jeśli wykona się polecenie:
wget -r -l 2 http://I<ośrodek>/1.html
to zostaną pobrane 1.html, 1.gif, 2.html, 2.gif i 3.html. Jak
widać, 3.html nie posiada towarzyszącego mu elementu, gdyż Wget w
celu określenia miejsca, gdzie powinien przerwać rekurencję po
prostu zlicza liczbę skoków (aż do 2) od początkowego 1.html.
Jednak przy takim poleceniu:
wget -r -l 2 -p http://I<ośrodek>/1.html
zostaną ściągnięte wszystkie powyższe pliki oraz wymagany przez
3.html plik 3.gif. Podobnie,
wget -r -l 1 -p http://I<ośrodek>/1.html
spowoduje pobranie 1.html, 1.gif, 2.html i 2.gif. Można by sądzić,
że:
wget -r -l 0 -p http://I<ośrodek>/1.html
pobrałoby tylko 1.html i 1.gif, ale niestety tak nie jest, gdyż -l
0 jest równoważnikiem -l inf -- czyli nieskończonej rekurencji. Do
pobrania pojedynczej strony HTML (lub ich grupy, wszystkich
podanych w wierszu poleceń lub w pliku wejściowym URL-i -i) i
towarzyszących jej (lub im) elementów, wystarczy pominąć -r i -l:
wget -p http://I<ośrodek>/1.html
Zauważ, że Wget zachowa się tak, jakby podano opcję -r, ale
zostanie pobrana tylko pojedyncza strona i jej elementy. Program
nie będzie podążał za odnośnikami z tej strony do zewnętrznych
dokumentów. Faktycznie, do ściągania pojedynczej strony i
wszystkich towarzyszących jej elementów (nawet jeśli leżą one na
odrębnych serwerach WWW) i upewnienia się, że całość lokalnie
poprawnie się wyświetla, autor oprócz -p korzysta z kilku
dodatkowych opcji:
wget -E -H -k -K -p http://I<ośrodek>/I<dokument>
Kończąc ten temat, warto wiedzieć, że Wget uważa za odnośnik do
dokumentu zewnętrznego każdy URL podany w znaczniku "<A>", "<AREA>"
lub "<LINK>", oprócz "<LINK REL="stylesheet">".
Opcje rekurencyjnego akceptowania/odrzucania
-A lista_akc --accept lista_akc
-R lista_odrz --reject lista_odrz
Podaje listę oddzielonych przecinkami przyrostków nazw plików
(rozszerzeń plików) lub wzorców nazw, jakie mają być akceptowane
lub odrzucane..
-D lista_domen
--domains=lista_domen
Ustala domeny, do których program może przechodzić. lista_domen
jest listą separowaną przecinkami. Zauważ, że ta opcja nie włącza
-H.
--exclude-domains lista_domen
Podaje domeny, do których program ma nie przechodzić..
--follow-ftp
Podąża za odnośnikami FTP z dokumentów HTTP. Bez tej opcji Wget
będzie ignorował wszelkie odnośniki do FTP.
--follow-tags=lista
Wget ma wewnętrzną tablicę par: znacznik HTML/atrybut, którą
posługuje się przy poszukiwaniu powiązanych dokumentów podczas
pobierania rekurencyjnego. Jeśli jednak chcielibyśmy, by brany był
pod uwagę tylko pewien podzbiór tych znaczników, powinniśmy użyć
tej opcji, podając je w postaci listy separowanej przecinkami.
-G lista
--ignore-tags=lista
Jest to przeciwieństwo opcji --follow-tags. Dzięki podaniu listy
rozdzielonych przecinkami znaczników HTML można pominąć je podczas
rekurencyjnego szukania dokumentów do pobrania.
Niegdyś opcja -G, użyta w wierszu poleceń:
wget -Ga,area -H -k -K -r http://I<ośrodek>/I<dokument>
była najlepszym wyborem do ściągania pojedynczej strony razem z jej
elementami.
Jednak autor tej opcji przeszedł przez stronę ze znacznikami typu
"<LINK REL="home" HREF="/">" i uświadomił sobie, że -G nie
wystarcza. Nie można po prostu nakazać Wget ignorowania "<LINK>",
gdyż wówczas nie będą ściągane arkusze stylów. Obecnie najlepszym
sposobem pobierania pojedynczej stony razem z jej elementami jest
specjalnie przeznaczona do tego opcja --page-requisites.
-H
--span-hosts
Włącza przechodzenie pomiędzy hostami przy pobieraniu
rekurencyjnym.
-L
--relative
Podąża tylko za odnośnikami względnymi. Przydatne do pobierania
konkretnej strony bez żadnych odwracających uwagę dodatków, nawet z
tego samego hosta..
-I lista
--include-directories=lista
Określa list rozdzielonych przecinkami katalogów, do których ma
przechodzić program podczas pobierania Elementy listy mogą
zawierać znaki uogólniające.
-X lista
--exclude-directories=lista
Określa list rozdzielonych przecinkami katalogów, które chcemy
wykluczyć z pobierania Elementy listy mogą zawierać znaki
uogólniające.
-np
--no-parent
Powoduje, że Wget przy pobieraniu rekurencyjnym nigdy nie wchodzi
do katalogu nadrzędnego. Przydatna opcja, gdyż gwarantuje, że
ściągane będą tylko pliki poniej pewnego poziomu.
PRZYKŁADY
Przykłady podzielono na trzy części, z grubsza według stopnia
komplikacji.
Proste zastosowania
o Powiedzmy, że chcemy ściągnąć jakiś URL. Wystarczy napisać:
wget http://fly.srk.fer.hr/
o 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
o 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.
o 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
o 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/
links index.html
Zaawansowane zastosowania
o 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.
o ! Create a five levels deep mirror image of the GNU web site, with
the ! same directory structure the original has, with only one try
per ! document, saving the log of the activities to gnulog:
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
o 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
o 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.
o 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
o Pobranie index.html z www.lycos.com, z pokazaniem oryginalnych,
odebranych od serwera nagłówków:
wget -S http://www.lycos.com/
o Zapisanie nagłówków serwera w pliku, zapewne do końcowego
przetwarzenia:
wget -s http://www.lycos.com/
more index.html
o Pobranie pierwszych dwu poziomów wuarchive.wustl.edu, z zapisaniem
ich do /tmp.
wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu/
o 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".
o 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/
o 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 -
Bardzo zaawansowane zastosowania
o Jeśli chcemy, by Wget utrzymywał lustrzaną kopię strony (lub
podkatalogów FTP), stosujemy --mirror (-m), co jest skróconym
zapisem dla -r -l inf -N. Umieszczamy Wget w pliku crontab,
żądając, by w każdą niedzielę ponawiał sprawdzanie ośrodka:
crontab
0 0 * * 0 wget --mirror http://www.gnu.org/ -o /home/ja/weeklog
o Dodatkowo można zażyczyć sobie konwersji odnośników, tak by całość
nadawała się do przeglądania lokalnie. Jednak, po przeczytaniu tego
podręcznika, wiecie już, że taka konwersja nie sprawuje się dobrze,
gdy wykorzystujemy znaczniki czasu, więc chcemy również, żeby Wget
utworzył kopie oryginalnych plików HTML przed ich przekształceniem.
Odpowiednie Wywołanie wyglądałoby tak:
wget --mirror --convert-links --backup-converted \
http://www.gnu.org/ -o /home/ja/weeklog
o Ale zauważyliście też, że lokalne przeglądanie nie działa całkiem
poprawnie, jeśli pliki HTML zapisano z innym rozszerzeniem niż
.html, na przykład dlatego, że dostarczono je jako index.cgi. Zatem
chcielibyśmy, żeby Wget wszystkim plikom przekazanym z nagłówkiem
content-type równym text/html zmienił nazwy na nazwa.html.
wget --mirror --convert-links --backup-converted \
--html-extension -o /home/ja/weeklog \
http://www.gnu.org/
Lub też, pisząc krócej:
wget -m -k -K -E http://www.gnu.org/ -o /home/me/weeklog
PLIKI
/etc/wgetrc
Domyślne położenie globalnego pliku startowego.
.wgetrc
Prywatny plik startowy użytkownika.
BŁĘDY
Zachęcamy do przesyłania zgłoszeń błędów dotyczących GNU Wget na adres
<"bug-wget@gnu.org">.
Przed faktycznym przedłożeniem zgłoszenia błędu, spróbuj, proszę,
zastosować się do kilku prostych wskazówek.
1. Spróbuj upewnić się, że obserwowane zachowanie jest rzeczywiście
błędem. Jeśli Wget się wywala, jest to błąd. Jeśli nie zachowuje
się zgodnie z dokumentacją, jest to błąd. Jeśli coś działa
dziwnie, ale nie jesteś pewien, w jaki sposób powinno, może to też
być błędem.
2. Spróbuj, proszę, powtórzyć ten błąd w możliwie najprostszych
warunkach. Np. jeśli Wget pada podczas ściągania wget -rl0 -kKE
-t5 -Y0 http://yoyodyne.com -o /tmp/log, powinieneś spróbować
sprawdzić, czy to wywalanie się jest powtarzalne i czy pojawia się
przy prostszym zestawie opcji. Możesz nawet spróbować zacząć
pobieranie od strony, przy której wystąpiła awaria i sprawdzić, czy
to nie ta strona w jakiś sposób ją powoduje.
Ponadto, choć co prawda prawdopodobnie będę zainteresowany
zawartością twojego pliku .wgetrc, skopiowanie go po prostu do
wiadomości o błędzie jest raczej złym pomysłem. Zamiast tego,
powinieneś najpierw sprawdzić, czy błąd powtarza się przy .wgetrc
przesuniętym na ubocze. Prześlij mi odpowiednie fragmenty tego
pliku tylko wtedy, gdy okaże się, że błąd zależy od ustawień
.wgetrc.
3. Uruchom, proszę, Wget z opcją -d i prześlij uzyskany protokół (lub
związane z błędem jego części). Jeśli Wget został skompilowany bez
obsługi debugowania, skompiluj go ponownie. Duo łatwiej jest
śledzić błędy z udostępnioną diagnostyką.
4. jeśli Wget się wywala, spróbuj uruchomić go w debugerze, np. "gdb
`which wget` core" i wpisz "where", by otrzymać stos wywołania
(backtrace).
ZOBACZ TAKŻE
Plik GNU Info dla wget.
AUTOR
Pierwotnie napisane przez Hrvoje Niksic <hniksic@arsdigita.com>.
COPYRIGHT
Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation,
Inc.
Zezwala się na sporządzanie i rozpowszechnianie niezmienionych kopii
tego podręcznika, pod warunkiem zachowania na wszystkich kopiach
informacji o prawach autorskich i niniejszego zezwolenia.
Zezwala się na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego
dokumentu na warunkach Licencji Wolnej Dokumentacji GNU (GNU Free
Documentation License) w wersji 1.1 lub jakiejkolwiek nowszej wersji
opublikowanej przez Fundację Wolnego Oprogramowania, przy czym Sekcjami
niezmiennymi są ,,GNU General Public License'' i ,,GNU Free
Documentation License'', bez treści przedniej lub tylnej strony
okładki. Egzemplarz licencji zamieszczono w sekcji zatytułowanej ,,GNU
Free Documentation License''.