Jak používat příkaz Wget Linux pro stahování webových stránek a souborů

Nástroj wget umožňuje stahovat webové stránky, soubory a obrázky z webu pomocí příkazového řádku systému Linux.

Můžete použít samostatný příkaz wget pro stahování z webu nebo nastavit vstupní soubor pro stažení více souborů na více místech.

Podle manuální stránky může být wget použit i v případě, že se uživatel odhlásil ze systému. Chcete-li to provést, použijte příkaz nohup.

Nástroj wget znovu vyzkouší stahování, a to i v případě, že spojení klesne, pokračuje-li od místa, kde to bylo možné, pokud se to vrátí.

Můžete si stáhnout celé webové stránky pomocí nástroje wget a převést odkazy na místa na místní zdroje, abyste si mohli prohlížet webové stránky offline.

Vlastnosti wget jsou následující:

Jak stáhnout webové stránky pomocí wget

Pro tuto příručku vám ukážeme, jak si stáhnout svůj osobní blog.

wget www.everydaylinuxuser.com

Stojí za to, že na přístroji vytvoříte vlastní složku pomocí příkazu mkdir a poté přesunete do složky pomocí příkazu cd .

Například:

mkdir everydaylinuxuser
cd everydaylinuxuser
wget www.everydaylinuxuser.com

Výsledkem je jediný soubor index.html. Samotný soubor je poměrně zbytečný, protože obsah je stále vytahován od Googlu a obrázky a styly jsou stále v Google.

Chcete-li stáhnout celý web a všechny stránky, můžete použít následující příkaz:

wget -r www.everydaylinuxuser.com

Tato stránka se stáhne rekurzivně až do hloubky maximálně 5 úrovní.

5 úrovní hluboké nemusí být dost pro získání všechno z webu. Pomocí přepínače -l můžete nastavit počet úrovní, na které chcete přejít:

wget -r -l10 www.everydaylinuxuser.com

Pokud chcete nekonečné rekurze, můžete použít následující:

wget -r -l inf www.everydaylinuxuser.com

Můžete také nahradit inf 0, což znamená totéž.

Ještě jeden problém existuje. Můžete získat všechny stránky místně, ale všechny odkazy na stránkách stále ukazují na své původní místo. Proto není možné klikat místně mezi odkazy na stránkách.

Tento problém můžete obejít pomocí přepínače -k, který převádí všechny odkazy na stránkách tak, aby ukázal na jejich lokálně stažený ekvivalent, a to následujícím způsobem:

wget -r -k www.everydaylinuxuser.com

Chcete-li získat kompletní zrcadlo webových stránek, můžete jednoduše použít následující přepínač, který odstraní nutnost použití přepínačů -r -k a -l.

wget -m www.everydaylinuxuser.com

Proto pokud máte vlastní webové stránky, můžete provést kompletní zálohu pomocí tohoto jednoduchého příkazu.

Spusťte příkaz wget jako pozadí

Wget můžete spustit jako příkaz na pozadí, což vám umožní pokračovat v práci v terminálovém okně při stahování souborů.

Jednoduše použijte následující příkaz:

wget -b www.everydaylinuxuser.com

Můžete samozřejmě kombinovat spínače. Chcete-li spustit příkaz wget na pozadí při zrcadlení webu, použijte následující příkaz:

wget -b -m www.everydaylinuxuser.com

Můžete to dále zjednodušit následujícím způsobem:

wget -bm www.everydaylinuxuser.com

Protokolování

Pokud používáte příkaz wget na pozadí, nezobrazí se žádné normální zprávy, které odesílá na obrazovku.

Všechny tyto zprávy můžete odeslat do souboru protokolu, abyste mohli kdykoli ověřit pokrok pomocí příkazu tail .

Chcete-li získat informace z příkazu wget do souboru protokolu, použijte následující příkaz:

wget -o / path / to / mylogfile www.everydaylinuxuser.com

Naopak, samozřejmě, nevyžaduje žádné zaznamenávání a žádný výstup na obrazovku. Chcete-li vynechat veškerý výstup, použijte následující příkaz:

wget -q www.everydaylinuxuser.com

Stáhnout z více stránek

Můžete si nastavit vstupní soubor ke stažení z mnoha různých stránek.

Otevřete soubor pomocí oblíbeného editoru nebo dokonce příkazu cat a jednoduše spusťte seznam stránek nebo odkazů, které se mají stáhnout z každého řádku souboru.

Uložte soubor a spusťte následující příkaz wget:

wget -i / path / to / vstupní soubor

Kromě zálohování vlastních webových stránek nebo snad nalezení návodu ke stažení ve vlaku, je nepravděpodobné, že si budete chtít stáhnout celý web.

Je pravděpodobné, že stačí stahovat jednu adresu URL pomocí obrázků nebo stahovat soubory, jako jsou soubory zip, soubory ISO nebo obrazové soubory.

S tímto vědomím nechcete, abyste museli zadávat následující údaje do vstupního souboru, protože jsou časově náročné:

Pokud víte, že základní adresa URL bude vždy stejná, můžete ve vstupním souboru zadat následující:

Zde můžete zadat základní adresu URL jako součást příkazu wget následujícím způsobem:

wget -B http://www.myfileserver.com -i / path / to / inputfile

Opakovat možnosti

Pokud jste nastavili frontu souborů ke stažení v rámci vstupního souboru a necháte počítač běžící celou noc, stáhnete si soubory, které budou poměrně rozčilené, když přijedete ráno, zjistíte, že se na prvním souboru objevil a se pokouší celou noc.

Můžete určit počet opakování pomocí následujícího přepínače:

wget -t 10 -i / path / to / vstupní soubor

Možná budete chtít použít výše uvedený příkaz ve spojení s přepínačem -T, který vám umožní zadat časový limit v sekundách následujícím způsobem:

wget -t 10 -T 10 -i / path / to / vstupní soubor

Výše uvedený příkaz bude 10krát opakovat a pokusí se připojit po dobu 10 sekund pro každý odkaz v souboru.

Je to docela nepříjemné, když jste částečně stáhli 75% ze souboru o velikosti 4 gigabytem na pomalém širokopásmovém připojení pouze kvůli propojení.

Pomocí příkazu wget můžete zopakovat stahování pomocí následujícího příkazu:

wget -c www.myfileserver.com/file1.zip

Pokud bušíte server, hostitel nemusí být příliš rád a může zablokovat nebo jen zabít vaše požadavky.

Můžete určit dobu čekání, která určuje, jak dlouho se bude mezi každým vyhledáním čekat takto:

wget -w 60 -i / path / to / vstupní soubor

Výše uvedený příkaz počká mezi každým stahováním 60 sekund. To je užitečné, pokud stahujete spoustu souborů z jednoho zdroje.

Někteří weboví hostitelé mohou zaznamenat frekvenci a zároveň vás zablokují. Dobu čekání můžete provést náhodně, aby vypadalo, jako byste nepoužívali program, a to takto:

wget --random-wait -i / path / to / vstupní soubor

Ochrana omezení stahování

Mnoho poskytovatelů internetových služeb stále uplatňuje limity pro stahování pro vaše širokopásmové připojení, zejména pokud žijete mimo město.

Možná budete chtít přidat kvótu tak, abyste tento limit stahování nevyfukovali. Můžete to udělat následujícím způsobem:

wget -q 100m -i / path / to / vstupní soubor

Všimněte si, že příkaz -q nefunguje s jediným souborem.

Pokud tedy stáhnete soubor s velikostí 2 gigabajty, pomocí souboru -q 1000 m se stahování souborů nezastaví.

Kvóta platí pouze při rekurzivním stahování z webu nebo při použití vstupního souboru.

Získání zabezpečení

Některé stránky vyžadují, abyste se přihlásili, abyste měli přístup k obsahu, který chcete stáhnout.

K určení uživatelského jména a hesla můžete použít následující přepínače.

wget - user = vaše jméno - heslo = vaše heslo

Poznámka k víceuživatelskému systému, pokud někdo spustí příkaz ps, bude moci vidět vaše uživatelské jméno a heslo.

Další možnosti stahování

Ve výchozím nastavení přepínač -r rekurzivně stáhne obsah a vytvoří adresáře tak, jak to jde.

Všechny soubory, které lze stáhnout do jedné složky, můžete získat pomocí následujícího přepínače:

wget -nd -r

Naproti tomu je nutno vytvářet adresáře, které lze dosáhnout pomocí následujícího příkazu:

wget -x -r

Jak stáhnout některé typy souborů

Chcete-li rekurzívně stáhnout z webu, ale chcete stáhnout konkrétní typ souboru, například mp3 nebo obrázek, například png, můžete použít následující syntaxi:

wget -A "* .mp3" -r

Opačný je ignorovat určité soubory. Možná nechcete stahovat spustitelné soubory. V tomto případě použijete následující syntaxi:

wget -R "* .exe" -r

Cliget

K dispozici je doplněk Firefox nazvaný cliget. Toto můžete přidat do Firefoxu následujícím způsobem.

Navštivte https://addons.mozilla.org/en-US/firefox/addon/cliget/ a klikněte na tlačítko "přidat do Firefoxu".

Pokud se zobrazí, klikněte na tlačítko instalace. Budete muset restartovat Firefox.

Chcete-li použít cliget, navštivte stránku nebo soubor, který chcete stáhnout, a klikněte pravým tlačítkem myši. Zobrazí se kontextová nabídka s názvem cliget a budou k dispozici možnosti "copy to wget" a "copy to curl".

Klikněte na volbu "Kopírovat na wget" a otevřete okno terminálu a klikněte pravým tlačítkem myši a vložte ji. Do okna se vloží příslušný příkaz wget.

V podstatě to šetří, že musíte zadat příkaz sám.

souhrn

Příkaz wget jako obrovský počet možností a přepínačů.

Proto stojí za to číst manuálovou stránku pro wget zadáním následujícího do okna terminálu:

muž wget