NAZWA¶
wget - Podręcznik GNU Wget
SKŁADNIA¶
wget [
opcja]... [
URL]...
OPIS¶
Uwaga! To tłumaczenie może być nieaktualne!
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 pająk (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 każdym 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 katalogów 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=użytkownik
-
- --http-passwd=hasło
- 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-nagłówek
- Określa dodatkowy-nagłówek
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=użytkownik
-
- --proxy-passwd=hasło
- 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, uogólniających (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 głębokość
-
- --level=głębokość
- 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:
- •
- 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.
- •
- 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
poniżej pewnego poziomu.
PRZYKŁADY¶
Przykłady podzielono na trzy części, z grubsza według
stopnia komplikacji.
Proste zastosowania
- •
- 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.
- •
- 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/
links 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.
- •
- ! 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
- •
- 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.
- •
- 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 -
Bardzo zaawansowane zastosowania
- •
- 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
- •
- 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
- •
- 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.
Dużo ł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''.
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
Tłumaczenia Manuali i
może nie być aktualne. W razie
zauważenia różnic między powyższym opisem a
rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o
zapoznanie się z oryginalną (angielską) wersją strony
podręcznika za pomocą polecenia:
- man --locale=C 1 wget
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.