Skip to content

Hoe de wget Linux-opdracht te gebruiken om webpagina’s en bestanden te downloaden

7 de augustus de 2021
computer code 172295014 59a8652e054ad90010e98956

Wat te weten

  • Gebruik de volgende opdracht met het webadres van de site om een ​​volledige site te downloaden: wget -r [site address]
  • Om wget als achtergrondcommando uit te voeren, gebruikt u: wget -b [site address]

Kenmerken van het wget-commando

Je kunt hele websites downloaden met wget en converteer de links om naar lokale bronnen te verwijzen, zodat u een website offline kunt bekijken. Het hulpprogramma wget probeert ook een download opnieuw wanneer de verbinding wegvalt en hervat waar het was gebleven, indien mogelijk wanneer de verbinding terugkeert. Andere kenmerken van wget zijn als volgt:

  • Download bestanden met HTTP, HTTPS en FTP.
  • Hervat het downloaden.
  • Converteer absolute links in gedownloade webpagina’s naar relatieve URL’s zodat websites offline kunnen worden bekeken.
  • Ondersteunt HTTP-proxy’s en cookies.
  • Ondersteunt permanente HTTP-verbindingen.
  • Het kan op de achtergrond worden uitgevoerd, zelfs als u niet bent aangemeld.
  • Werkt op Linux en Windows.

Een website downloaden met behulp van wget

Het hulpprogramma wget downloadt webpagina’s, bestanden en afbeeldingen van internet met behulp van de Linux-opdrachtregel. U kunt een enkele wget-opdracht gebruiken om van een site te downloaden of een invoerbestand instellen om meerdere bestanden op meerdere sites te downloaden. Volgens de handleiding kan wget zelfs worden gebruikt als de gebruiker is uitgelogd van het systeem. Gebruik hiervoor de opdracht nohup. Voor deze handleiding leert u hoe u deze Linux-blog kunt downloaden: wget www.everydaylinuxuser.com

type=”code”> Maak voordat u begint een map op uw computer met de opdracht mkdir en ga naar de map met de opdracht cd. Bijvoorbeeld: mkdir everydaylinuxuser
cd everydaylinuxuser
wget www.everydaylinuxuser.com

type=”code”> Het resultaat is een enkel index.html-bestand dat de inhoud bevat die is opgehaald van Google. De afbeeldingen en stylesheets worden bijgehouden op Google.

Gebruik de volgende opdracht om de volledige site en alle pagina’s te downloaden: wget -r www.everydaylinuxuser.com

type=”code”> Dit downloadt de pagina’s recursief tot maximaal 5 niveaus diep. Vijf niveaus diep zijn misschien niet genoeg om alles van de site te krijgen. Gebruik de -l schakel om het aantal niveaus in te stellen waarnaar u wilt gaan, als volgt: wget -r -l10 www.everydaylinuxuser.com

type=”code”> Als je oneindige recursie wilt, gebruik dan het volgende: wget -r -l inf www.everydaylinuxuser.com

type=”code”> U kunt ook de . vervangen info met 0, wat hetzelfde betekent. Er is nog een probleem. Mogelijk krijgt u alle pagina’s lokaal, maar de links op de pagina’s verwijzen naar de oorspronkelijke plaats. Lokaal klikken tussen de links op de pagina’s is niet mogelijk.

Linux wget-bestand downloaden

Om dit probleem te omzeilen, gebruikt u de -k switch om de links op de pagina’s om te zetten naar het lokaal gedownloade equivalent, als volgt: wget -r -k www.everydaylinuxuser.com

type=”code”> Als u een volledige spiegel van een website wilt krijgen, gebruikt u de volgende schakeloptie, die de noodzaak voor het gebruik van de -R, -k, en -l schakelaars. wget -m www.everydaylinuxuser.com

type=”code”> Als je een website hebt, kun je een volledige back-up maken met deze ene simpele opdracht.

Voer wget uit als een achtergrondopdracht

U kunt wget als achtergrondopdracht laten uitvoeren, zodat u door kunt gaan met uw werk in het terminalvenster terwijl de bestanden worden gedownload. Gebruik het volgende commando: wget -b www.everydaylinuxuser.com

type=”code”>

Linux wget achtergrondproces

Je kunt schakelaars combineren. Om de wget-opdracht op de achtergrond uit te voeren tijdens het spiegelen van de site, gebruikt u de volgende opdracht: wget -b -m www.everydaylinuxuser.com

type=”code”> U kunt dit verder vereenvoudigen, als volgt: wget -bm www.everydaylinuxuser.com

type=”code”>

Loggen

Als u het wget-commando op de achtergrond uitvoert, ziet u geen van de normale berichten die het naar het scherm stuurt. Gebruik het tail-commando om die berichten naar een logbestand te sturen zodat u op elk moment de voortgang kunt controleren. Om informatie van de wget-opdracht naar een logbestand uit te voeren, gebruikt u de volgende opdracht: wget -o /path/to/mylogfile www.everydaylinuxuser.com

type=”code”> Het omgekeerde is dat er helemaal geen logboekregistratie en geen uitvoer naar het scherm nodig is. Gebruik de volgende opdracht om alle uitvoer weg te laten: wget -q www.everydaylinuxuser.com

type=”code”>

Downloaden van meerdere sites

U kunt een invoerbestand instellen om van veel verschillende sites te downloaden. Open een bestand met uw favoriete editor of de opdracht cat en vermeld op elke regel van het bestand de sites of links waarvan u wilt downloaden. Sla het bestand op en voer het volgende wget-commando uit: wget -i /path/to/inputfile

type=”code”> Afgezien van het maken van een back-up van uw website of het vinden van iets om te downloaden om offline te lezen, is het onwaarschijnlijk dat u een hele website wilt downloaden. Het is waarschijnlijker dat u een enkele URL met afbeeldingen downloadt of bestanden zoals zip-bestanden, ISO-bestanden of afbeeldingsbestanden downloadt. Met dat in gedachten hoeft u het volgende niet in het invoerbestand te typen, omdat dit tijdrovend is:

  • http://www.myfileserver.com/file1.zip
  • http://www.myfileserver.com/file2.zip
  • http://www.myfileserver.com/file3.zip

Als u weet dat de basis-URL hetzelfde is, geeft u het volgende op in het invoerbestand:

  • bestand1.zip
  • bestand2.zip
  • bestand3.zip

U kunt dan als volgt de basis-URL opgeven als onderdeel van de opdracht wget: wget -B http://www.myfileserver.com -i /path/to/inputfile

type=”code”>

Opties opnieuw proberen

Als u een wachtrij met bestanden instelt om te downloaden in een invoerbestand en u laat uw computer draaien om de bestanden te downloaden, kan het invoerbestand vastlopen terwijl u weg bent en opnieuw proberen om de inhoud te downloaden. U kunt het aantal nieuwe pogingen specificeren met de volgende schakeloptie: wget -t 10 -i /path/to/inputfile

type=”code”> Gebruik de bovenstaande opdracht in combinatie met de -T schakel om een ​​time-out in seconden op te geven, als volgt: wget -t 10 -T 10 -i /path/to/inputfile

type=”code”> De bovenstaande opdracht zal 10 keer opnieuw proberen en gedurende 10 seconden verbinding maken voor elke bestandskoppeling. Ook is het onhandig als je 75% van een bestand van 4 gigabyte downloadt op een langzame breedbandverbinding, alleen dan valt de verbinding weg. Gebruik de volgende opdracht om wget te gebruiken om opnieuw te proberen vanaf het punt waar het is gestopt met downloaden: wget -c www.myfileserver.com/file1.zip

type=”code”> Als je op een server hamert, zal de host het misschien niet leuk vinden en je verzoeken blokkeren of beëindigen. U kunt als volgt een wachttijd specificeren om aan te geven hoe lang er moet worden gewacht tussen elke opvraging: wget -w 60 -i /path/to/inputfile

type=”code”> De bovenstaande opdracht wacht 60 seconden tussen elke download. Dit is handig als u veel bestanden van één bron downloadt. Sommige webhosts kunnen de frequentie herkennen en u blokkeren. U kunt de wachttijd willekeurig maken zodat het lijkt alsof u geen programma gebruikt, als volgt: wget –random-wait -i /path/to/inputfile

type=”code”>

Bescherm downloadlimieten

Veel internetproviders hanteren downloadlimieten voor breedbandgebruik, vooral voor mensen die buiten een stad wonen. Misschien wilt u een quotum toevoegen zodat u uw downloadlimiet niet overschrijdt. U kunt dat op de volgende manier doen: wget -q 100m -i /path/to/inputfile

type=”code”> De -Q commando werkt niet met een enkel bestand. Als u een bestand downloadt dat 2 gigabyte groot is, gebruikt u -Q 1000m stopt het downloaden van het bestand niet. Het quotum wordt alleen toegepast bij recursief downloaden van een site of bij gebruik van een invoerbestand.

Kom door de beveiliging

Voor sommige sites moet u zich aanmelden om toegang te krijgen tot de inhoud die u wilt downloaden. Gebruik de volgende schakelaars om de gebruikersnaam en het wachtwoord op te geven. wget –user=uwgebruikersnaam –password=uwwachtwoord

type=”code”> Op een systeem met meerdere gebruikers, wanneer iemand de ps commando, kunnen ze uw gebruikersnaam en wachtwoord zien.

Andere downloadopties

Standaard is de -R switch downloadt recursief de inhoud en maakt onderweg mappen aan. Gebruik de volgende schakeloptie om alle bestanden naar een enkele map te downloaden: wget -nd -r

type=”code”> Het tegenovergestelde hiervan is het forceren van het maken van mappen, wat kan worden bereikt met het volgende commando: wget -x -r

type=”code”>

Hoe bepaalde bestandstypen te downloaden

Als u recursief van een site wilt downloaden, maar alleen een specifiek bestandstype zoals een MP3 of een afbeelding zoals een PNG wilt downloaden, gebruikt u de volgende syntaxis: wget -A “*.mp3” -r

type=”code”> Het omgekeerde hiervan is om bepaalde bestanden te negeren. Misschien wilt u geen uitvoerbare bestanden downloaden. Gebruik in dit geval de volgende syntaxis: wget -R “*.exe” -r

type=”code”>

Cliget

Er is een Firefox-add-on genaamd cliget. Om dit toe te voegen aan Firefox:

  1. Ga naar https://addons.mozilla.org/en-US/firefox/addon/cliget/ en klik op de toevoegen aan Firefox knop.

  2. Klik op de installeren knop wanneer deze verschijnt en start Firefox vervolgens opnieuw.

  3. Om cliget te gebruiken, gaat u naar een pagina of bestand dat u wilt downloaden en klikt u met de rechtermuisknop. Er verschijnt een contextmenu met de naam cliget, en er zijn opties om kopiëren naar wget en kopiëren om te krullen.

  4. Klik op de kopiëren naar wget optie, open een terminalvenster, klik met de rechtermuisknop en kies Plakken. De juiste wget-opdracht wordt in het venster geplakt.

Zo hoeft u de opdracht niet zelf in te voeren.

Overzicht

De opdracht wget heeft verschillende opties en schakelaars. Om de handleiding voor wget te lezen, typt u het volgende in een terminalvenster: man wget

class=”ql-syntaxis”>