Skip to content

Allt om WordPress, webbutveckling — och mer därtill

📥 Hur man laddar ner en hel webbplats med Wget på Windows

📥 Hur man laddar ner en hel webbplats med Wget på Windows

Kommandoradsverktyget Wget är gratis och kan spegla webbplatser, ladda ner varje sida, varje bild, varje CSS-fil och lagra dem i en mapp på din disk. Det låter som magi, men det är ren ingenjörskonst: rekursiv länkgenomgång, sökvägskonvertering till relativa URL:er och noggrant bevarande av strukturen. Efter att du skapat ett sådant arkiv öppnas webbplatsen lokalt som om den vore live; du klickar helt enkelt på en .html-fil.

Problemet är att vettiga guider för Windows nästan inte existerar. De flesta manualer är skrivna för Unix, och den genomsnittlige Windows-användaren behöver en färdig .exe-fil, tydliga kommandon och skydd mot vanliga fallgropar som oändlig rekursion eller trasiga länkar. Den luckan ska vi fylla.

💡 Snabb översikt:

  • Ladda ner Wget för Windows och lägg till verktygets sökväg i systemets PATH
  • Öppna en kommandotolk i din målmapp och kör speglingskommandot
  • Efter nedladdning fixar du trasiga länkar och sökvägar med grepWin, så är arkivet redo för visning
  • Om rekursion inte behövs, använd ett läge med en förberedd lista med URL:er

Varför ladda ner en hel webbplats överhuvudtaget

Internet är inte för evigt. Sajter stänger, byter ägare, genomgår omdesign och förlorar gammalt innehåll. Datahamstringskulturen på Reddit har sedan länge gjort arkivering till en kultur, och det av goda skäl. Du kan inte förutse när din favoritblogg försvinner eller när värdefull dokumentation hamnar bakom en betalvägg, men du kan spara den i dess nuvarande form.

Scenarierna sträcker sig från uppenbara till oväntade. Du ska resa någonstans utan internetåtkomst och behöver en fungerande ögonblicksbild av en informationssajt. Eller så samlar du på designeror; gårdagens webb med sina tabellayouter och syrafärgade knappar är redan historia. Även din egen sajt är vettig att spegla med jämna mellanrum: det är inte en backup i traditionell mening (du kan inte återställa databasen), men en statisk ögonblicksbild som överlever varje webbhotellskrasch.

En viktig varning: var försiktig med vad du laddar ner. Upphovsrätts- och integritetslagar gäller fortfarande. Privat bruk av en sparad kopia är oftast lagligt, men att publicera någon annans innehåll utan tillstånd kan skapa problem.

Hur Wget genomsöker en sajt: processens mekanik

Wget startar från den URL du anger och följer rekursivt varje intern länk, teoretiskt sett till oändligt djup. När det är korrekt konfigurerat bryter det sig inte ut på det öppna internet och börjar ladda ner Google: flaggan --mirror tillsammans med --reject-regex håller genomsökningen inom måldomänens gränser. Alla externa länkar förblir orörda, helt enkelt text med den ursprungliga URL:en.

Längs vägen plockar Wget upp allt: HTML-sidor, stilmallar, skript, bilder, typsnitt. Sedan konverterar det interna länkar till relativa sökvägar, vilket gör att arkivet kan öppnas lokalt med fungerande navigering precis som på den levande sajten. Externa länkar förblir oförändrade och fortsätter att peka ut på internet (om du har tillgång till det när du visar arkivet).

Ett arkiv, inte en backup. Du kan inte återställa en sajt från en sådan statisk kopia eftersom det inte finns någon databas och ingen serverlogik. Wget fungerar som en sökmotorrobot: den hittar bara sidor som någon har länkat till. Under processen kommer du att se hur viktiga interna länkar är för innehållets sammankoppling; föräldralösa sidor utan inkommande länkar kommer inte med i arkivet.

Även om Wget inte är knutet till något särskilt CMS fungerar det särskilt bra med WordPress-sajter. Anledningen är enkel: standardwidgets som taggmoln och månadsarkiv skapar ett tätt nätverk av interna länkar som roboten enkelt traverserar.

Installera Wget på Windows

Wget-världen kretsar historiskt kring Unix, och Windows-användare är gäster här. Om du går till den officiella GNU-sajten och laddar ner källkoden får du en massa .c-filer, inte ett körklart program. Du behöver en färdigkompilerad binär:

  • Gå till eternallybored.org/misc/wget, ett inofficiellt men beprövat arkiv med Wget-byggen för Windows (aktuell version 1.21.4)
  • Ladda ner zip-arkivet med den senaste versionen och packa upp det i en separat mapp. Ingen installation krävs; det är ett portabelt verktyg

Om du dubbelklickar på wget.exe blinkar ett kommandotolksfönster till och stängs omedelbart. Wget är ett konsolprogram; det behöver en öppen terminal i din målmapp. Och för att slippa kopiera .exe-filen till varje mapp med framtida arkiv, lägg till Wget i systemets PATH:

  • Tryck Windows + R, klistra in och kör:
1 "C:\Windows\system32\rundll32.exe" sysdm.cpl,EditEnvironmentVariables
  • I sektionen Användarvariabler, leta upp variabeln Path och klicka på Redigera...
  • Klicka på Ny och ange den fullständiga sökvägen till mappen som innehåller wget.exe
  • Stäng alla dialogrutor genom att klicka på OK

Verifiering: tryck Windows + R igen → cmd /k "wget -V". Du bör se Wget-versionen, inte ett meddelande om att kommandot inte känns igen.

Kommandotolksfönster som visar Wget-versionsinformation

Viktiga Wget-flaggor: detaljerad genomgång

De flesta flaggor har korta motsvarigheter på en bokstav, men långa namn är mer meningsfulla och läsbara utan fusklapp. Jag har valt ut inställningar som bevisats i praktiken, så istället för att läsa manualen för GNU Wget på 181 sidor får du ett utdrag med en förklaring av "varför" för varje.

Grundläggande flaggor

--mirror aktiverar oändlig rekursion. I grunden är det en uppsättning andra flaggor kombinerade under en enda flagga. Utan den kommer Wget bara att ladda ner den angivna sidan, inte hela webbplatsen. Det är --mirror som gör spegling möjlig.

--page-requisites laddar ner alla associerade resurser: CSS, JavaScript, bilder, typsnitt. Utan den här flaggan kommer ditt arkiv att se ut som en naken HTML-sida utan stilmallar eller bilder.

--convert-links skriver om länkar i HTML-filer efter att nedladdningen är klar så att de fungerar lokalt. Absoluta webbadresser ersätts med relativa sökvägar. Det är detta som gör att du kan öppna index.html från disken och navigera genom sidor som på en levande webbplats.

--adjust-extension lägger till filändelser till filer som kom utan. Moderna webbplatser serverar ofta sidor utan .html i slutet (läsbara webbadresser), och utan denna flagga kommer webbläsaren inte att förstå att det är ett HTML-dokument. Det finns en hake: om servern komprimerar innehåll via gzip kan Wget av misstag ge filen filändelsen .gz. Nästa flagga skyddar mot detta.

--compression=auto hanterar gzip-komprimering i farten. Utan den kan en SVG-logotyp sparas som logo.svg.gz och bli oanvändbar för lokal visning. Denna flagga är inte tillgänglig i alla byggen; Unix-användare stöter ibland på dess frånvaro. Windows-bygget från eternallybored.org inkluderar den.

--reject-regex "/search|/rss" förhindrar genomsökning av webbadresser som innehåller de angivna orden. Söksidor och RSS-flöden genererar oändliga kedjor av parametrar som fyller ditt filsystem med namn som är flera skärmlängder långa. Det reguljära uttrycket här använder grundläggande POSIX-syntax, inte full PCRE. Var försiktig: /search kommer att kapa inte bara sökskräp utan även legitima artiklar med webbadresser som yoursite.com/search-for-extraterrestrial-life. Vid sådana kollisioner, gör mönstret mer specifikt.

Ytterligare flaggor

--no-if-modified-since inaktiverar kontroll av If-Modified-Since-headern. Jag inkluderar bara denna flagga när servern uttryckligen klagar i loggarna. Om du inte planerar att köra igen i samma mapp för att fånga upp ändringar är denna flagga inte kritisk.

--no-check-certificate hoppar över SSL-certifikatverifiering. Vid spegling anger du inga lösenord eller överför konfidentiell data, så strikt certifikatverifiering är överdrivet. Denna flagga besparar dig huvudvärk på webbplatser med utgångna eller självsignerade certifikat.

--user-agent förfalskar webbläsarens User-Agent. Vissa servrar upptäcker Wget och blockerar förfrågningar. Att utge sig för att vara en vanlig Chrome-webbläsare löser problemet:

1--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"

Om blockering sker via IP behöver du ett VPN och eventuellt distribution av nedladdningen över flera maskiner. I detta fall kommer flaggorna --wait och --random-wait för att sakta ner förfrågningstakten också att vara användbara.

--restrict-file-names=windows begränsar tecken i filnamn till en Windows-säker uppsättning. I Unix är specialtecken i namn tillåtna, och ett arkiv som laddats ner på en Linux-maskin kan vara oläsligt i Windows. Om du arbetar i Windows tillämpas flaggan automatiskt; om du laddar ner i Unix men kommer att visa i Windows, ange den uttryckligen.

--backup-converted sparar en originalkopia av varje fil som Wget modifierade under länkkonvertering. Detta fördubblar arkivstorleken. Jag använder den inte, men jag nämner den ifall du behöver en sekund-för-sekund-säkerhetskopia av varje redigering.

Öppna kommandotolken i rätt mapp

Wget körs från en terminal, och terminalen måste peka på mappen där du planerar att lagra arkivet. Det finns flera metoder, från standard till avancerad:

  • Windows + Rcmd → Enter, sedan cd /d C:\path\to\archive (flaggan /d tillåter växling mellan enheter)
  • Om sökvägen innehåller mellanslag, omge den med citattecken: cd /d "C:\My Archive"

Snabbare, på en rad: Windows + Rcmd /k "cd /d C:\path\to\archive". Flaggan /k håller fönstret öppet efter att kommandot har körts.

Om du använder Total Commander: Kommandon → Öppna kommandotolk öppnar en terminal direkt i den aktuella mappen. För Utforskaren finns det en registerjustering som lägger till alternativet "Öppna kommandofönster här" i snabbmenyn.

Starta nedladdningen: det kompletta kommandot

Nu sätter vi ihop allt. Här är kommandot jag använder för att spegla en genomsnittlig webbplats:

1wget --mirror --page-requisites --convert-links --adjust-extension --compression=auto --reject-regex "/search|/rss" --no-if-modified-since --no-check-certificate --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" https://example.com

Samma sak kan skrivas med korta flaggor: wget -mkp -E --compression=auto -R "/search|/rss" .... Men långa namn gör kommandot självdokumenterande. Om en månad öppnar du din .bat-fil och förstår omedelbart vad varje flagga gör.

Ersätt https://example.com med den faktiska webbadressen till målwebbplatsen och tryck Enter. Processen kan ta allt från några minuter till flera timmar, beroende på webbplatsens storlek och serverbegränsningar.

Efterbearbetning: grepWin och typiska korrigeringar

Efter nedladdning kräver arkivet nästan alltid lite finputsning. Verktyget grepWin är en schweizisk armékniv för mass-sök och ersätt i textfiler i Windows. Här är ett par typiska scenarier:

  • Ta bort skräp-HTML-taggar. Vissa CMS-plattformar genererar tomma <source>-taggar som stör renderingen. I grepWin, välj regex-sökning efter <source media=".*">, ange masken *.html och ersätt med en tom sträng.

  • Fixa resurssökvägar. Om vissa sökvägar förblev absoluta kommer grepWin att hitta dem med ett mönster som src="https://example.com/ och ersätta med den lokala motsvarigheten.

grepWin-verktygsfönster med sök- och ersättningsinställningar

Det här är bara en utgångspunkt; varje sajt har sina egna överraskningar. grepWins styrkor: direkt förhandsgranskning innan ersättning, rekursiv bearbetning av mappar och stöd för regex. Men när mängden redigeringar går bortom "sök och ersätt" erbjuder Unix-verktyg som sed och grep mycket större flexibilitet. Windows-versioner finns tillgängliga via WSL eller Cygwin.

Alternativ: ladda ner från en URL-lista utan rekursion

Rekursiv crawling är inte alltid lämpligt. Om sajten är enorm men du bara behöver ett specifikt urval av sidor är det enklare att förbereda en URL-lista och mata in den i Wget med --input-file:

1wget --input-file=links.txt --page-requisites --convert-links --adjust-extension --compression=auto --no-if-modified-since --no-check-certificate --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"

Observera att --mirror och --reject-regex är borttagna: rekursion behövs inte, och du kontrollerar själv URL-listan.

Hur sammanställer man en sådan lista? En metod är Googles avancerade sökning: sökfrågan site:yoursite.com "keyword phrase" returnerar indexerade sidor om ämnet. Ställ in resultaten på 100, beväpna dig med tillägget Copy Links för Chrome och kopiera URL:er i omgångar till links.txt.

Video: spegla en sajt på 5 minuter

För att se hela processen live, från installation till färdigt arkiv, titta på denna skärminspelning:

Författaren går igenom processen från grunden: ladda ner Wget, konfigurera alternativ, köra kommandot och öppna resultatet i en webbläsare. Jag rekommenderar att du tittar innan din första körning; 7 minuters skärmtid sparar en timmes felsökning.

⁉️🤔 Vanliga frågor

Kan jag återställa en sajt från ett Wget-arkiv?

Ett Wget-arkiv är en statisk ögonblicksbild: HTML, CSS, JS och mediafiler. Det innehåller ingen databas och ingen serverlogik. Du kan inte ladda upp en sådan kopia till ett webbhotell och återuppliva WordPress med kommentarer och adminpanel. Det här är ett verktyg för att bevara innehåll, inte för backup. För fullständig WordPress-backup, använd tillägg som UpdraftPlus eller Duplicator, som sparar både filer och databasen.

Wget laddar ner för mycket skräp. Hur begränsar jag det?

En kombination av --reject-regex (URL-filter med mönster) och --reject (filter efter filändelser) löser problemet. Till exempel, att lägga till --reject=jpg,png,gif hoppar över alla bilder. Eller --reject-regex "/tag/|/category/|/page/" klipper bort etikettarkiv, kategorier och sidnumrering. Nyckeln är att testa på en liten delmängd sidor innan en full körning.

Servern blockerade min IP efter att jag började ladda ner. Vad ska jag göra?

Wget kan upptäckas via User-Agent eller begärandefrekvens. Tre skyddsnivåer: User-Agent-spoofing via --user-agent (visas ovan), strypning via --wait=1 --random-wait (1 sekunds paus plus slumpmässigt tillägg), och IP-byte via VPN. För stora sajter kan du dela upp nedladdningen: förbered flera URL-listor och kör Wget parallellt från olika maskiner eller VPN-ändpunkter.

Varför är Wget bättre än webbläsartillägg för att spara sidor?

Tillägg som SingleFile sparar en enskild sida. Wget speglar en hel sajt, med navigering, sidnumrering och alla interna länkar. För en blogg med 500 artiklar skulle ett webbläsartillägg kräva 500 manuella klick. Wget gör det med ett kommando. Dessutom konverterar inte webbläsartillägg länkar för lokal navigering: du skulle få 500 isolerade filer utan koppling till varandra.

Arkivet väger gigabyte. Hur komprimerar och lagrar jag det?

En mapp med tusentals små filer är obekväm att överföra, säkerhetskopiera och skanna med antivirusprogram. Jag packar sådana arkiv i RAR med metoden "Store" eller "Fastest": hastighet är viktigare än komprimeringsgrad eftersom HTML och media redan är komprimerade. Jag lägger alltid till en återställningspost, vilket räddar dagen när det finns dåliga sektorer på en disk eller överföringsfel. Resultatet: en enda fil som kopieras på sekunder och inte faller isär under lagring.

Att ladda ner eller inte ladda ner: när Wget är värt besväret

Wget är inte för dagligt bruk. Det är ett verktyg för en specifik uppgift: att skaffa en fullständig statisk kopia av en sajt du bryr dig om eller finner användbar. När det finns en risk att resursen försvinner, sträck dig efter Wget. När du ska arbeta offline, sträck dig efter Wget. När du behöver bevara ett "digitalt fossil" från Geocities-eran, så mycket mer skäl.

För enstaka sidor räcker ett webbläsartillägg. För fullständig WordPress-backup, använd ett backuptillägg. Men när du specifikt behöver ett fristående, navigerbart arkiv av en hel webbplats, har Wget praktiskt taget inga alternativ, och nu vet du hur du kör det på Windows utan problem.

Testa på en liten sajt från en bekant eller på din egen blogg. Den första körningen klargör mycket, och den andra går smidigt. Och glöm inte återställningsposten i ditt arkiv: låt din samling överleva vilken hårddisk som helst.