Hvad kan det bruges til?
wget
er et værktøj til at hente (dele af) websteder ned på din egen maskine. Det kan for eksempel være fordi
- du skal lave en CD med SSLUG’s websted.
- du skal ud og sejle og ikke kan undvære referencemanualen til Ada.
- du foretrækker at bruge xv til at kigge 620 billeder fra Legoland i Californien igennem.
- du vedligeholder en afspejling af
<URL:http://www.opensource.org/>
Hvordan bruger man det?
Man bør, som altid, læse
-siden, hvis man er i tvivl. Jeg har lavet den til en udskriftsklar Postscript-fil (9 sider, 46 kb) for dem der foretrækker dokumentation på papir.man
Her er der et eksempel fra et program jeg kører ind imellem (med crontab
):
wget --verbose \ --timestamping \ --recursive \ --level=0 \ --no-parent \ --background \ --input-file=websteder
--verbose
beder wget
om at være snakkesalig
.--timestamping
betyder at wget
undersøger om dokumenterne på webstedet er nyere end den lokale kopi inden de bliver hentet.--recursive
hent også de sider siden henviser til og så videre.--level=0
følg henvisninger i “uendelig mange” led. Hvis tallet er større end nul følges henvisninger i så mange led som tallet angiver.--no-parent
følg kun henvisninger udad. Hvis man starter med <URL:http://edb.jacob-sparre.dk/foredrag/> hentes <URL:http://edb.jacob-sparre.dk/> for eksempel ikke.--background
sætter programmet til at køre i baggrunden. Der skrives en logfil, der kommer til at hedde wget-log
(hvis du ikke vælger et andet navn og der ikke allerede findes en fil med det navn).--input-file=websteder
sætter wget
til at læse en liste med websider fra filen websteder
. Alternativt kan man give programmet en liste med adresser direkte på kommandolinien:
wget --mirror http://www.sslug.dk/ \Home Page – End of 2023 campaign
I stedet for --timestamping
og --recursive
kan man nøjes med --mirror
, der har samme effekt som de to argumenter sammen.
Hvilke problemer er der?
wget
har desværre en kedelig vane med at ignorere kommentarafmærkning i HTML-dokumenter. Hvis vi ser på den følgende stump HTML:
<UL> <LI><A Href="linuxkommerciel.html">Kommercielt</A> <!--<LI><A Href="misc/">Forskelligt</A>--> <LI><A Href="kalender.html">Kalender</A> </UL>
Her vil wget
forsøge at hente alle tre dokumenter, til trods for at henvisningen til misc/
er bortkommenteret. Det gør at wget
for eksempel ikke er velegnet til at undersøge et websted for blinde henvisninger (noget jeg en overgang forsøgte at bruge det til).
Er der nogen der vil være med til at rette wget
til så det tager hensyn til kommentarafmærkning i HTML-dokumenter?