Een website downloaden of kopie maken van een webpagina
Wil je een kopie maken van een webpagina of meerdere webpagina’s? Met behulp van wget kun je zelfs hele websites downloaden, maar pas wel op dat je niet teveel downloadt. Met de volgende instructies zorg je dat je een goede kopie maakt en probeert je pc niet het hele internet te downloaden.
Lees verder na de advertentie
Om een kopie te kunnen maken hoef je alleen maar de website te kunnen openen – net zoals elke bezoeker. Om de pagina(‘s) volledig op te slaan, gebruik je wget. Vrijwel elke Linux-distributie heeft dat in zijn pakketbronnen en voor Windows heeft het project een installer en is er een macOS pakket.Het beschrijven van alle functies en parameters van wget gaat te ver, de tool is als een Zwitsers zakmes. Hieronder beschrijven we de belangrijkste instellingen voor het klonen van een website.
Als voorbeeld en om zelf te oefenen is de ‘Beginner HTML Site’ van Mozilla goed geschikt, die je vindt op https://mdn.github.io/beginner-html-site-styled/.
Kopie van webpagina maken
Tip!
Ontworpen voor creators en professionals: configureer jouw eigen ASUS ProArt P16 nu.
De meest eenvoudige vorm van wget om een pagina te downloaden is wget gevolgd door het webadres:
wget https://mdn.github.io/beginner-html-site-styled/
Het resultaat is wat uitvoer van wget en het downloaden van het bestand index.html. Dat bestand kun je openen met een normale browser, maar helaas ziet de kopie er nog niet uit als het origineel. De inhoud van de tekst is er, maar die heeft vrijwel geen opmaak en de afbeelding ontbreekt ook.

De uiteindelijke vorm van wget om de volledige pagina te downloaden is:
wget -p -nH -H -k -E »https://mdn.github.io/beginner-html-site-styled/
Opties van wget uitgelegd
Waar de opties -p -nH -H -k -E voor nodig zijn en wat ze doen leggen we hier kort uit.
- -p : met deze parameter downloadt wget niet alleen de gevraagde website, maar ook alle bronnen die nodig zijn voor de weergave, zoals stylesheets, lettertypen en afbeeldingen – voor zover daar door de betreffende HTML-code naar gerefereerd wordt.
- -nH : dit zorgt ervoor dat de map waarin wget alles opslaat als je -p gebruikt een verkorte naam krijgt. Dat is vaak nuttig als er toch maar één domein gekloond wordt.
- -H : zorgt ervoor dat het programma ook bronnen (zoals lettertypen) downloadt die van andere hosts worden geladen. De voorbeeldpagina van Mozilla dowloadt bijvoorbeeld een lettertype van fonts.gstatic.com.
- -k : zorgt dat de externe bronnen die met -H worden gedownload, in de gedownloade versie van de pagina uit de lokale map worden gehaald. Het zet daarbij ook absolute links binnen hetzelfde domein om in relatieve links.
- -E : voegt extensies zoals .css toe aan bestandsnamen en past speciale symbolen zoals vraagtekens (waardoor browsers denken dan het om een query gaat) aan om problemen te vermijden.
Na een website downloaden met deze opties is die niet meer te onderscheiden van de originele pagina, hoewel de browser alle bronnen van de eigen schijf laadt. De bestanden kunnen dus ook in de documenten-root van gangbare webservers worden gezet en worden dan op de juiste manier uitgeleverd. Dat mag je natuurlijk alleen doen als je je eigen website kopieert en niet de site van een derde partij, zoals in het voorbeeld hier.
Blijf op de hoogte van de nieuwste workshops en tips! Schrijf je in voor de nieuwsbrief:
Complete website downloaden
Het voorbeeld hierboven gaat om één pagina. De meeste websites bestaan uit meerdere subpagina’s die aan elkaar gelinkt zijn, bijvoorbeeld via een menu. Ook die kan wget downloaden door recursief van link naar link te gaan.
Daarbij moet je wel oppassen, zodat je pc niet het hele internet probeert te downloaden. Anders raakt niet alleen je eigen internetlijn overbelast, maar kun je ook anti-DDOS-mechanismen op webservers activeren die je ip-adres blokkeren. Een site als Wikipedia blokkeert wget zelfs volledig om onzorgvuldige wget-experimenten te voorkomen.
Gebruik behalve de opties hierboven de volgende extra opties voor een website downloaden, maar pas dus op met de waarden!
- -w : bepaalt hoeveel seconden wget moet wachten tussen twee requests, bijvoorbeeld -w 1. Aanvullend of als alternatief kun je –limit-rate, –quota en –random-wait opzoeken.
- -r : zorgt dat wget ook links volgt naar andere pagina’s. Standaard volgt wget tot vijf links na elkaar, maar dat kan veel te veel zijn! Of eventueel te weinig. Gebruik dit dus altijd in combinatie met –l .
- – l : bepaalt hoe veel links diep wget volgt, bijvoorbeeld -l 2 voor 2 recursieve niveaus diep. Begin voorzichtigheidshalve vanaf 1.
De opdracht bij het voorbeeld ziet er dan uit als
wget -p -H -k -E -w 1 -r -l 1 https://mdn.github.io/beginner-html-site-styled/
De gelinkte webpagina met het manifesto wordt nu ook gedownload van mozilla.org. We laten -nH weg, omdat het bij aanvragen via meerdere domeinen meer zin heeft om wget ook de bijpassende lokale mappen aan te laten maken.

In de praktijk
Hoe ver je komt met de hier beschreven parameters hangt af van de website. Problematisch zijn websites die veel gebruik maken van JavaScript of zeer actuele webtechnieken. Het 24 jaar oude programma is echter nog steeds in ontwikkeling en er wordt ook aan wget2 gewerkt.
Maar zelfs de huidige versie kan al goed van pas komen. Je kunt bijvoorbeeld oudere websites bewaren voordat ze voorgoed verdwijnen. Handig voor die blog van de lang vervlogen grote reis, de website van een oud studentenproject of de startpagina van de bruiloft inclusief het RSVP-formulier.
Er zijn bovendien nog veel meer parameters. Daarmee kun je diverse problemen voorkomen en ook complexere blogs, forums en uitgebreide websites downloaden.
(Informatie afkomstig uit het artikel van Sylvester Tremmel en Noud van Kruysbergen, c’t magazine 1-2/2020, p. 116)
- Ontdek hoe je veilig blijft zonder nieuwe pc te kopen.
- Big Tech onder de loep
- Alles over Wi-Fi 8
Tip!
Dit is het moment om jouw droomdevice aan te schaffen.


Praat mee