Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

📥 Kuidas Windowsis Wgetiga terve veebisait alla laadida

📥 Kuidas Windowsis Wgetiga terve veebisait alla laadida

Tasuta käsurea utiliit Wget suudab veebisaite peegeldada, laadides alla iga lehe, iga pildi, iga CSS-faili ja salvestades need kettal olevasse kausta. See kõlab nagu maagia, kuid on puhas inseneritöö: rekursiivne linkide läbimine, teede teisendamine suhtelisteks URL-ideks ja struktuuri hoolikas säilitamine. Pärast sellise arhiivi loomist avaneb sait lokaalselt, nagu oleks see otse-eetris; klõpsate lihtsalt mõnel .html-failil.

Probleem on selles, et korralikke Windowsi juhendeid peaaegu pole. Enamik käsiraamatuid on kirjutatud Unixile ja tavaline Windowsi kasutaja vajab valmis .exe-faili, selgeid käske ja kaitset tüüpiliste lõksude, nagu lõputu rekursiooni või katkiste linkide eest. Just selle tühimiku me täidamegi.

💡 Kiirülevaade:

  • Laadige alla Wget Windowsile ja lisage utiliidi asukoht süsteemi PATH-muutujasse
  • Avage käsurida oma sihtkaustas ja käivitage peegeldamiskäsk
  • Pärast allalaadimist parandage katkised lingid ja teed, kasutades grepWin-i, ning arhiiv on vaatamiseks valmis
  • Kui rekursiooni pole vaja, kasutage režiimi eelnevalt ettevalmistatud URL-ide nimekirjaga

Miks üldse tervet saiti alla laadida

Internet ei ole igavene. Saidid suletakse, vahetavad omanikku, läbivad uuenduskuuri ja kaotavad vana sisu. Andmete kogumise kogukond Redditis on arhiveerimisest ammu kultuuri teinud ja põhjusega. Ei saa ennustada, millal teie lemmikblogi kaob või millal väärtuslik dokumentatsioon maksumüüri taha liigub, kuid saate selle praegusel kujul salvestada.

Stsenaariumid ulatuvad ilmselgest ootamatuni. Olete minemas kuhugi, kus puudub internetiühendus, ja vajate töötavat hetktõmmist mõnest teabesaidist. Või kogute disainiajastuid; eilne veeb oma tabelipaigutuste ja erksavärviliste nuppudega on juba ajalugu. Isegi omaenda saiti on mõttekas perioodiliselt peegeldada: see pole varukoopia traditsioonilises mõttes (andmebaasi taastada ei saa), vaid staatiline hetktõmmis, mis elab üle iga majutuse krahhi.

Üks oluline hoiatus: olge ettevaatlik, mida alla laadite. Autoriõiguse ja privaatsuse seadused kehtivad endiselt. Salvestatud koopia isiklik kasutamine on tavaliselt seaduslik, kuid kellegi teise sisu avaldamine loata võib probleeme tekitada.

Kuidas Wget saiti läbib: protsessi mehaanika

Wget alustab teie määratud URL-ilt ja järgib rekursiivselt iga sisemist linki, teoreetiliselt lõputu sügavuseni. Õigesti seadistatuna ei murra see lahtisesse internetti ega hakka Google'it alla laadima: valik --mirror koos --reject-regex-iga hoiab läbimise sihtdomeeni piirides. Kõik välised lingid jäävad puutumata, lihtsalt tekstiks koos algse URL-iga.

Teekonnal haarab Wget kõik: HTML-lehed, stiililehed, skriptid, pildid, fondid. Seejärel teisendab see sisemised lingid suhtelisteks teedeks, mis võimaldab arhiivil lokaalselt avaneda nii, et navigatsioon töötab nagu otse-eetris saidil. Välised lingid jäävad muutmata ja viitavad jätkuvalt internetti (kui see on teil vaatamise ajal saadaval).

Arhiiv, mitte varukoopia. Sellisest staatilisest koopiast ei saa saiti taastada, sest puudub andmebaas ja serveriloogika. Wget töötab nagu otsingumootori robot: see leiab ainult lehti, millele keegi on linkinud. Selle käigus näete, kui olulised on sisemised lingid sisu ühendatuse jaoks; orvulehed, millele ei viita ükski link, arhiivi ei jõua.

Kuigi Wget ei ole seotud ühegi konkreetse CMS-iga, töötab see eriti hästi WordPressi saitidega. Põhjus on lihtne: tavalised vidinad, nagu märksõnapilved ja igakuised arhiivid, loovad tiheda sisemiste linkide võrgustiku, mida robot vaevata läbib.

Wgeti installimine Windowsile

Wgeti maailm keerleb ajalooliselt Unixi ümber ja Windowsi kasutajad on siin külalised. Kui lähete ametlikule GNU saidile ja laadite alla lähtekoodi, saate hunniku .c-faile, mitte käivitamisvalmis programmi. Teil on vaja eelnevalt kompileeritud binaarfaili:

  • Minge saidile eternallybored.org/misc/wget, mis on mitteametlik, kuid ajaproovile vastu pidanud Wgeti Windowsi versioonide hoidla (praegune versioon 1.21.4)
  • Laadige alla uusima versiooni zip-arhiiv ja pakkige see eraldi kausta lahti. Installimine pole vajalik; see on kaasaskantav utiliit

Kui teete topeltklõpsu failil wget.exe, vilksatab käsuviiba aken ja sulgub kohe. Wget on konsooliprogramm; see vajab avatud terminali teie sihtkaustas. Ja et vältida .exe-faili kopeerimist igasse tulevaste arhiividega kausta, lisage Wget süsteemi PATH-muutujasse:

  • Vajutage Windows + R, kleepige ja käivitage:
1 "C:\Windows\system32\rundll32.exe" sysdm.cpl,EditEnvironmentVariables
  • Jaotises Kasutaja muutujad leidke muutuja Path ja klõpsake Muuda...
  • Klõpsake Uus ja sisestage täielik tee kaustani, mis sisaldab wget.exe-faili
  • Sulgege kõik dialoogid, klõpsates OK

Kontroll: vajutage uuesti Windows + Rcmd /k "wget -V". Peaksite nägema Wgeti versiooni, mitte teadet, et käsku ei tuvastatud.

Käsureakna aken, mis näitab Wgeti versiooniteavet

Wgeti peamised valikud: üksikasjalik ülevaade

Enamikul valikutest on lühikesed ühetähelised vasted, kuid pikad nimed on ilma spikrita tähendusrikkamad ja loetavamad. Olen välja valinud praktikas tõestatud seaded, nii et 181-leheküljelise GNU Wgeti käsiraamatu lugemise asemel saad väljavõtte koos iga valiku „miks"-selgitusega.

Põhivalikud

--mirror lubab lõpmatu rekursiooni. Sisuliselt on see teiste valikute komplekt, mis on ühe lipu alla koondatud. Ilma selleta laadib Wget alla ainult määratud lehe, mitte kogu saidi. Just --mirror teebki peegeldamise võimalikuks.

--page-requisites laadib alla kõik seotud ressursid: CSS, JavaScript, pildid, fondid. Ilma selle valikuta näeb su arhiiv välja nagu paljas HTML-leht ilma stiilide ja piltideta.

--convert-links kirjutab pärast allalaadimise lõppu HTML-failides olevad lingid ümber, nii et need töötaksid lokaalselt. Absoluutsed URL-id asendatakse suhteliste radadega. Just see võimaldab sul avada kettalt index.html ja navigeerida lehtedel nagu elaval saidil.

--adjust-extension lisab laiendid failidele, mis saabusid ilma nendeta. Kaasaegsed saidid serveerivad lehti sageli ilma lõpus oleva .html-ita (inimloetavad URL-id) ja ilma selle valikuta ei saa brauser aru, et ta vaatab HTML-dokumenti. Siin on konks: kui server pakib sisu gzipiga, võib Wget anda failile ekslikult .gz laiendi. Järgmine valik kaitseb selle eest.

--compression=auto käsitleb gzip-pakkimist lennult. Ilma selleta võidakse SVG-logo salvestada kui logo.svg.gz ja see muutub kohalikuks vaatamiseks kasutuks. See valik pole kõigis versioonides saadaval; Unixi kasutajad puutuvad mõnikord selle puudumisega kokku. Windowsi versioon saidilt eternallybored.org sisaldab seda.

--reject-regex "/search|/rss" takistab määratud sõnu sisaldavate URL-ide läbimist. Otsingulehed ja RSS-vood genereerivad lõputuid parameetrite ahelaid, mis täidavad su failisüsteemi mitme ekraani pikkuste nimedega. Siinne regulaaravaldis kasutab POSIX-i põhisüntaksit, mitte täielikku PCRE-d. Ole ettevaatlik: /search lõikab ära mitte ainult otsingurämpsu, vaid ka legitiimsed artiklid, mille URL-id on nagu yoursite.com/search-for-extraterrestrial-life. Selliste kokkulangemiste korral tee muster täpsemaks.

Lisavalikud

--no-if-modified-since keelab If-Modified-Since päise kontrollimise. Lisan selle lipu ainult siis, kui server logides sõnaselgelt kaebab. Kui sa ei plaani muudatuste tuvastamiseks samas kaustas uuesti käivitada, pole see valik kriitiline.

--no-check-certificate jätab SSL-sertifikaadi kontrollimise vahele. Peegeldamisel ei sisesta sa paroole ega edasta konfidentsiaalseid andmeid, seega on range sertifikaadikontroll üleliigne. See lipp säästab peavalu aegunud või iseallkirjastatud sertifikaatidega saitide puhul.

--user-agent võltsib brauseri User-Agenti. Mõned serverid tuvastavad Wgeti ja blokeerivad päringud. Tavalise Chrome'i brauserina esinemine lahendab probleemi:

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"

Kui blokeerimine toimub IP järgi, läheb sul vaja VPN-i ja võimalik, et allalaadimise jaotamist mitme masina vahel. Sel juhul tulevad kasuks ka valikud --wait ja --random-wait päringute sageduse aeglustamiseks.

--restrict-file-names=windows piirab failinimedes olevad märgid Windowsi jaoks ohutuks komplektiks. Unixis on erimärgid nimedes lubatud ja Linuxi masinas alla laaditud arhiiv võib Windowsis olla loetamatu. Kui töötad Windowsis, rakendatakse lipp automaatselt; kui laed alla Unixis, kuid vaatad Windowsis, määra see selgelt.

--backup-converted salvestab igast failist, mida Wget lingi teisendamise käigus muutis, originaalkoopia. See kahekordistab arhiivi suuruse. Ma ei kasuta seda, kuid mainin juhuks, kui vajad igast muudatusest sekundilist varukoopiat.

Käsurea avamine õiges kaustas

Wget töötab terminalis ja terminal peab olema suunatud kausta, kuhu plaanid arhiivi salvestada. On mitmeid meetodeid, standardsetest kuni edasijõudnuteni:

  • Windows + Rcmd → Enter, seejärel cd /d C:\path\to\archive (lipp /d võimaldab ketaste vahel vahetada)
  • Kui tee sisaldab tühikuid, ümbritse see jutumärkidega: cd /d "C:\My Archive"

Kiiremini, ühel real: Windows + Rcmd /k "cd /d C:\path\to\archive". Lipp /k hoiab akna pärast käsu täitmist avatuna.

Kui kasutad Total Commanderit: Commands → Open command shell avab terminali otse praeguses kaustas. Exploreri jaoks on olemas registriseadistus, mis lisab kontekstimenüüsse valiku „Open command window here".

Allalaadimise alustamine: täielik käsk

Paneme kõik kokku. Siin on käsk, mida kasutan keskmise veebisaidi peegeldamiseks:

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

Sama saab kirjutada lühikeste lippudega: wget -mkp -E --compression=auto -R "/search|/rss" .... Kuid pikad nimed muudavad käsu isedokumenteerivaks. Kuu aja pärast avad oma .bat faili ja saad kohe aru, mida iga valik teeb.

Asenda https://example.com sihtsaidi tegeliku URL-iga ja vajuta Enter. Protsess võib olenevalt saidi suurusest ja serveri piirangutest kesta mõnest minutist mitme tunnini.

Järeltöötlus: grepWin ja tüüpilised parandused

Pärast allalaadimist vajab arhiiv peaaegu alati mõningast viimistlemist. Utiliit grepWin on Šveitsi armee nuga pakkotsinguks ja asendamiseks tekstifailides Windowsis. Siin on paar tüüpilist stsenaariumi:

  • Rämps HTML-siltide eemaldamine. Mõned CMS-platvormid genereerivad tühje <source> silte, mis segavad renderdamist. grepWinis vali regulaaravaldise otsing <source media=".*">, määra mask *.html ja asenda tühja stringiga.

  • Ressursiradade parandamine. Kui mõned teed jäid absoluutseks, leiab grepWin need üles mustri järgi nagu src="https://example.com/ ja asendab kohaliku vastega.

grepWin utiliidi aken otsingu ja asendamise seadetega

See on alles vaid lähtepunkt; igal saidil on oma üllatused. grepWini tugevused: kohene eelvaade enne asendamist, rekursiivne kaustatöötlus ja regex’i tugi. Aga kui muudatuste maht ületab lihtsa „otsi ja asenda", pakuvad Unixi tööriistad nagu sed ja grep palju rohkem paindlikkust. Windowsi versioonid on saadaval WSL-i või Cygwini kaudu.

Alternatiiv: allalaadimine URL-ide nimekirjast ilma rekursioonita

Rekursiivne läbikammimine ei ole alati asjakohane. Kui sait on hiiglaslik, aga vajad ainult kindlat valikut lehti, on lihtsam koostada URL-ide nimekiri ja anda see Wget’ile ette --input-file abil:

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"

Pane tähele, et --mirror ja --reject-regex on eemaldatud: rekursiooni pole vaja ja sa kontrollid URL-ide nimekirja ise.

Kuidas sellist nimekirja koostada? Üks meetod on Google’i täpsem otsing: päring site:yoursite.com "keyword phrase" tagastab teemakohased indekseeritud lehed. Sea tulemuste arvuks 100, varusta end Chrome’i laiendusega Copy Links ja kopeeri URL-id partiidena faili links.txt.

Video: saidi peegeldamine 5 minutiga

Et näha kogu protsessi otse-eetris, alates paigaldamisest kuni valmis arhiivini, vaata seda ekraanisalvestust:

Autor läbib protsessi nullist: Wget’i allalaadimine, valikute seadistamine, käsu käivitamine ja tulemuse brauseris avamine. Soovitan enne esimest käivitamist vaadata; 7 minutit ekraaniaega säästab tunni jagu silumist.

⁉️🤔 Korduma kippuvad küsimused

Kas ma saan Wgeti arhiivist saidi taastada?

Wgeti arhiiv on staatiline tõmmis: HTML, CSS, JS ja meediafailid. See ei sisalda andmebaasi ega serveriloogikat. Sellist koopiat ei saa hosti üles laadida ja WordPressi koos kommentaaride ja administraatoripaneeliga ellu äratada. See on tööriist sisu säilitamiseks, mitte varundamiseks. Täielikuks WordPressi varunduseks kasuta pluginaid nagu UpdraftPlus või Duplicator, mis salvestavad nii failid kui ka andmebaasi.

Wget laeb alla liiga palju rämpsu. Kuidas seda piirata?

Kombinatsioon --reject-regex (URL-i filter mustri järgi) ja --reject (filter faililaiendite järgi) lahendab probleemi. Näiteks --reject=jpg,png,gif lisamine jätab kõik pildid vahele. Või --reject-regex "/tag/|/category/|/page/" lõikab ära siltide arhiivid, kategooriad ja lehekülgede jaotuse. Võti on testida väikese lehtede alamhulga peal enne täismahus käivitamist.

Server blokeeris mu IP pärast allalaadimise alustamist. Mida teha?

Wgeti saab tuvastada User-Agenti või päringute sageduse järgi. Kolm kaitsetaset: User-Agenti võltsimine --user-agent abil (näidatud ülal), aeglustamine --wait=1 --random-wait abil (1-sekundiline paus pluss juhuslik lisa) ja IP vahetamine VPN-i kaudu. Suurte saitide puhul saad allalaadimise tükeldada: valmista ette mitu URL-ide nimekirja ja käivita Wget paralleelselt erinevatest masinatest või VPN-i lõpp-punktidest.

Miks on Wget lehtede salvestamiseks brauserilaienditest parem?

Laiendid nagu SingleFile salvestavad ühe lehe. Wget peegeldab terve saidi koos navigatsiooni, lehekülgede jaotuse ja kõigi sisemiste linkidega. 500 artikliga blogi puhul nõuaks brauserilaiend 500 käsitsi klõpsu. Wget teeb selle ühe käsuga. Lisaks ei teisenda brauserilaiendid linke kohalikuks navigeerimiseks: sa saad 500 isoleeritud faili, millel puudub omavaheline seos.

Arhiiv kaalub gigabaite. Kuidas seda pakkida ja säilitada?

Tuhandete väikeste failidega kausta on ebamugav üle kanda, varundada ja viirusetõrjega skannida. Pakin sellised arhiivid RAR-i, kasutades meetodit „Store" või „Fastest": kiirus on olulisem kui pakkimissuhe, sest HTML ja meedia on juba pakitud. Lisan alati taastamiskirje, mis päästab päeva, kui kettal on vigaseid sektoreid või ülekandevigu. Tulemus: üks fail, mis kopeerub sekunditega ega lagune säilitamisel laiali.

Alla laadida või mitte: millal on Wgeti kasutamine õigustatud

Wget ei ole igapäevaseks kasutamiseks. See on tööriist konkreetseks ülesandeks: saada täielik staatiline koopia saidist, mis sulle korda läheb või mida pead kasulikuks. Kui on oht, et ressurss kaob, haara Wgeti järele. Kui hakkad töötama võrguühenduseta, haara Wgeti järele. Kui on vaja säilitada Geocitiesi ajastu „digitaalset fossiili", siis seda enam.

Üksikute lehtede jaoks piisab brauserilaiendist. Täielikuks WordPressi varunduseks kasuta varunduspluginat. Aga kui vajad just iseseisvat, navigeeritavat terve veebisaidi arhiivi, pole Wgetil praktiliselt alternatiive ja nüüd tead, kuidas seda Windowsis valutult käivitada.

Proovi seda mõne tuttava väikese saidi või oma blogi peal. Esimene käivitamine selgitab palju ja teine läheb juba sujuvalt. Ja ära unusta oma arhiivis taastamiskirjet: lase oma kollektsioonil üle elada iga kõvaketas.