V tomto článku se nebudu zabývat nástroji s grafickým uživatelským rozhraním. Pro základní ukládání v takovém prostředí vám koneckonců obvykle stačí webový prohlížeč a klávesová zkratka Ctrl+S (Cmd+S).
Podíváme se především na příkazový řádek. Nástroje v něm použité totiž snadno začleníte do dalších skriptů, což se může hodit třeba pro různé SEO analýzy.
Klasika největší – nástroj wget
Nástroj wget najdete nejčastěji v linuxových operačních systémech. Jeho účelem je právě stahování dat z internetu. Zadáte mu URL nějakého souboru a ten vám stáhne do počítače. Podobně jej lze využít ke stažení webových stránek. Stačí zadat přepínač -O s názvem souboru, do kterého chcete stránku uložit:
wget -O soubor.html https://www.example.tld
V mírně upravené modifikaci pak wget stáhne i všechny další stránky do stanovené úrovně, včetně obrázků a jiných zdrojů, to vše uloží do jednoho souboru:
wget -O soubor.html --recursive --level=2 https://www.example.tld
Když není wget, pomůže curl
Na MacOS není wget ve výchozím stavu k dispozici, v některých linuxových systémech taky občas chybí. Můžete jej sice snadno doinstalovat (na MacOS třeba pomocí brew install wget), ale pokud k instalaci nemáte oprávnění, zkuste alternativu.
Nástroj curl slouží coby komunikační prostředek pro různé internetové protokoly a stahování dat je jen jedna z celé široké řady jeho možností. Běžné prohlížení stránky je ve skutečnosti zavolání HTTP metody GET, kterou provedete následovně:
curl -o soubor.html https://www.example.tld/
Monolith a kompletní obsah v jednom souboru
Výše uvedené ukázky mají jeden zásadní problém. Uloží HTML strukturu, ale nechají v ní odkazy na externí zdroje, případně je vůbec neukládají. S řešením přichází nástroj Monolith. Nainstalujete jej pomocí celé řady možností v MacOS, Windows i Linuxu a spustíte jej jednoduchým voláním:
monolith https://www.example.tld/ -o soubor.html
Veškeré externí zdroje stáhne do jednoho souboru, ale učiní je funkčními. V praxi převádí obrázky na base64, stáhne externí fonty, CSS i JavaScript. To se velmi hodí při ukládání stránek, které mají nějakou formu preloaderu.
V dokumentaci k nástroji najdete celou řadu přepínačů, například pro vyloučení webových fontů a obrázků, nastavení JavaScriptu a videa, zpracování cookies a podobně.
Bonus: RCrawler pro scrapování webu v R
Pro analýzy klientských webů jsem si postavil jednoduchý scraper v R Studiu, který využívá Rcrawler. V kódu jej použijete velmi jednoduše:
Rcrawler(Website = "https://www.example.tld", no_cores = 4, no_conn = 4, MaxDepth = 3)
Výsledky si crawler ukládá jednak do paměti, jednak v domovské složce vytvoří adresář, ve kterém postupně ukládá HTML soubory s obsahem všech procházených URL adres. V závislosti na nastavení včetně těch externích. Ty můžete následně dále nějakým způsobem zpracovat. Já to používám například na kontrolu odkazů na webových stránkách při spouštění webu do produkce.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Přidat komentář