GNU/Linux >> Znalost Linux >  >> Cent OS

Jak načítat soubory a webové stránky pomocí Wget . dolů

Ke stažení souborů pomocí protokolů HTTP, HTTPS a FTP můžete použít příkaz wget. Je to výkonný nástroj, který vám umožňuje stahovat soubory na pozadí, procházet webové stránky a obnovit přerušené stahování. Wget také nabízí řadu možností, které vám umožní stahovat soubory přes extrémně špatné síťové podmínky.

Tento článek ukazuje, jak používat wget k provádění běžných úloh stahování z příkazového řádku.

Nainstalujte wget

Linux

Většina distribucí Linuxu má ve výchozím nastavení nainstalovaný wget. Chcete-li zkontrolovat, zda je ve vašem systému nainstalována nebo ne, zadejte wget na terminálu a stiskněte Enter. Pokud není nainstalován, zobrazí se chyba „příkaz nenalezen“. K instalaci do vašeho systému použijte příslušné příkazy níže.

Pro systémy založené na Ubuntu/Debianu použijte:

sudo apt update
sudo apt install wget

Pro systémy CentOS/RHEL použijte:

sudo yum install wget

MacOS

wget je k dispozici jako balíček homebrew, takže přejděte na stránku homebrew a nainstalujte jej podle pokynů. Poté můžete nainstalovat wget pomocí:

brew install wget

okno

wget je součástí msys2, projektu, jehož cílem je poskytnout sadu nástrojů příkazového řádku podobných Unixu. Přejděte na domovskou stránku msys2 a nainstalujte jej podle pokynů na stránce. Poté otevřete okno msys2 a zadejte:

pacman -S wget

Nyní můžete přistupovat k příkazu wget z prostředí MSYS2.

Stáhnout soubor s jeho adresou URL

Pokud máte odkaz na konkrétní soubor, můžete jej pomocí wget stáhnout jednoduše zadáním adresy URL jako parametru:

wget https://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso

Spuštěním výše uvedeného příkazu se zobrazí informace o průběhu, jako například:B. aktuální rychlost stahování a jak velká část souboru byla stažena:

wget odvodí název souboru z poslední části adresy URL a stáhne jej do vašeho aktuálního adresáře. V našem příkladu je soubor uložen pod ubuntu-18.04-desktop-amd64.iso .

Pokud existuje více souborů, můžete je zadat jeden po druhém:

wget <url_1> <url_2>

Všimněte si, že wget funguje pouze v případě, že je soubor přímo přístupný z adresy URL. Občas narazíte na soubory, které nemůžete stáhnout přímo pomocí odkazu – např. B. soubor, který je přístupný po přihlášení v článku.



Stahujte soubory přes FTP

Wget funguje stejným způsobem pro FTP – zadáte FTP URL jako argument, takto:

wget ftp://ftp.example.com/ubuntu/ubuntu-18.04-desktop-amd64.iso

Někdy může být soubor FTP chráněn uživatelským jménem a heslem. Můžete je předat wget takto:

wget --ftp-user=booleanworld --ftp-password=passw0rd <ftp_url>

Přizpůsobte název výstupního souboru a adresář

Jak jsme již viděli, wget odvodí názvy souborů a stáhne je do vašeho aktuálního adresáře. Pokud chcete soubor uložit do jiného adresáře nebo pod jiným názvem, můžete použít -O Přepínač. Například pokud chcete uložit stahování do souboru Ubuntu.iso , Spustit:

wget <url> -O Ubuntu.iso

Tímto způsobem můžete také změnit adresář. Například pro uložení staženého souboru jako souboru Ubuntu.iso pod /media/sdb1/Software , Spustit:

wget <url> -O /media/sdb1/Software/Ubuntu.iso

Někdy můžete chtít zadat adresář, ale nechat wget zjistit název souboru. Můžete to udělat pomocí -P Přepínač. Pokud máte soubor pod /media/sdb1/Software adresář, použijte:

wget <url> -P /media/sdb1/Software

Obnovit přerušené stahování

Stahování může být přerušeno kvůli špatným podmínkám sítě nebo proto, že jste jej ručně přerušili stisknutím Ctrl+C, zatímco wget stále stahoval soubor. Přerušené stahování můžete obnovit pomocí wget -c Přepínač:

wget -c <url>

Pokud jste stáhli do vlastního adresáře nebo souboru, měli byste použít -c a -P /-O přepínač, takto:

wget -c <url> -O <path_to_downloaded_file>

Pokud používáte -O a -c , ujistěte se, že zadáváte správnou adresu URL. V opačném případě získáte částečnou kombinaci dvou různých souborů, která je činí nepoužitelnými. Některé servery navíc neumožňují obnovení stahování souborů. (Zda server podporuje obnovení, poznáte podle ukazatele průběhu. Pokud se ukazatel průběhu během počátečního stahování pohybuje tam a zpět místo zleva doprava, server obnovení neumožňuje.) Soubor bude stažen znovu z začátek.

Omezování rychlosti stahování

Pokud stahujete velký soubor, možná budete chtít ovládat rychlost stahování, abyste měli větší šířku pásma pro procházení webu. Můžete to udělat pomocí --limit-rate Přepínač. Chcete-li například omezit rychlost stahování na 512 KB/s, použijte:

wget <url> --limit-rate=512k

Můžete také použít m Přípona pro limit v MB/s.

Stahování souborů na pozadí

Ve výchozím nastavení wget stahuje soubory na popředí, což nemusí být vhodné v každé situaci. Jako příklad můžete chtít stáhnout soubor na váš server přes SSH. Nechcete však ponechat otevřené připojení SSH a čekat na stažení souboru. Chcete-li stahovat soubory na pozadí, můžete použít -b Možnosti, jako je tato:

wget -b <url>

Když spustíte tento příkaz, wget vám řekne, kam uložit protokol stahování. Tento soubor se obvykle jmenuje wget-log , wget-log.1 nebo podobně:

Pokud budete chtít později sledovat stav stahování, můžete tak učinit pomocí:

tail -f wget-log

Zobrazí se posledních několik řádků stavu stahování:



Chcete-li zastavit zobrazování průběhu, můžete kdykoli stisknout Ctrl+C. Stahování však bude pokračovat jako obvykle na pozadí.

Stahování souborů přes špatná síťová připojení

Pokud máte nerovnoměrné připojení k internetu, stahování může často selhat nebo být velmi pomalé. Ve výchozím nastavení se wget v případě problémů pokusí o stažení až 20krát. V případě zvláště špatného připojení k internetu to však nemusí stačit. Pokud zaznamenáte pomalou rychlost stahování s častými chybami, můžete spustit:

wget -t inf --waitretry=3 --timeout=10 --retry-connrefused <url>

Nejprve máme počet pokusů (-t přepněte na inf . Pokud má wget problémy se stahováním souboru, pokusí se stahování dokončit mnohokrát. Potom jsme použili --waitretry pro nastavení prodlevy mezi každým pokusem o opakování na 3 sekundy.

Dále nastavíme časový limit sítě na 10 sekund pomocí --timeout Přepínač. Pokud wget neobdrží žádnou odpověď od serveru po dobu delší než 10 sekund, předpokládá, že spojení je mimo provoz. To pomáhá wget reissue síťové požadavky získat soubor.

Nakonec máme --retry-connrefused Přepínač. Chyba odmítnutí připojení obvykle nastane, když server neběží. Může k tomu však také dojít u nespolehlivých síťových připojení a tento přepínač říká wgetu, aby zkusil stahování znovu, pokud narazí na chybu odmítnutí připojení.

Stahujte soubory rekurzivně

Zatím jsme viděli, jak stahovat konkrétní soubory pomocí wget. Někdy má větší smysl stáhnout související části webu. Wget má pro tento účel funkci "rekurzivního stahování". V tomto režimu wget stáhne zdrojový soubor, uloží jej a vyhledává v něm odkazy. Poté stáhne každý z těchto odkazů, uloží tyto soubory a extrahuje z nich odkazy. Ve výchozím nastavení tento proces pokračuje až pětkrát. Tento limit (označovaný jako „hloubka rekurze“) však můžete podle potřeby zvýšit nebo snížit.

Chcete-li například rekurzivně stáhnout stránky anglické Wikipedie, použijte:

wget -r https://en.wikipedia.org/

Tyto soubory jsou uloženy v adresáři s názvem webu. V našem případě by byl obsah v adresáři s názvem . uloženo en.wikipedia.org .

K ovládání "hloubky rekurze" použijte -l Vlajka. Pokud chcete nastavit vlastní hodnotu, například 7, použijte:

wget -r -l 7 https://en.wikipedia.org/

Můžete také použít inf místo čísla. To umožňuje wgetu načíst veškerý obsah webové stránky s nekonečnou hloubkou rekurze.

Ve výchozím nastavení wget stahuje všechny nalezené soubory v rekurzivním režimu. Pokud vás zajímají pouze určité typy souborů, můžete to provést pomocí -A (přijmout) možnosti. Pokud si například chcete stáhnout obrázky PNG a JPEG z Wikipedie, použijte:

wget -r https://en.wikipedia.org/ -A png,jpg,jpeg

Tímto se stáhnou všechny soubory z Wikipedie (až 5 úrovní), ale odstraní se všechny soubory, které nekončí příponou png , jpg nebo jpeg . Můžete také použít -R Přepínač. Chcete-li například uložit všechny soubory z Wikipedie kromě dokumentů PDF, použijte:

wget -r https://en.wikipedia.org/ -R pdf

Převést odkazy ve stažených souborech

Při rekurzivním stahování souborů wget stáhne soubory a uloží je beze změny. Stažené webové stránky budou stále obsahovat odkazy směřující na web, což znamená, že tuto kopii nemůžete použít pro offline použití. Naštěstí má wget funkci převodu odkazů – převádí odkazy na webové stránce na místní odkazy. Chcete-li použít tuto funkci, použijte -k přepněte takto:

wget -k -r https://en.wikipedia.org/

Nastavte záhlaví a řetězce uživatelského agenta

HTTP klienti (jako prohlížeče a nástroje jako wget) odesílají „řetězec user-agent“ jako součást HTTP hlaviček, které identifikují klienta. Mnoho webmasterů blokuje wget tím, že nakonfiguruje svůj server tak, aby blokoval požadavky obsahující "wget" v tomto řetězci. Chcete-li to obejít, můžete přepsat řetězec user-agent wget vlastním; jako ten, který používá váš prohlížeč. Chcete-li zjistit uživatelského agenta svého prohlížeče, navštivte web jako echo.opera.com. Zkopírujte uživatelského agenta ze stránky a spusťte wget s -U Přepínač:

wget <url> -U "<user-agent-string>"

Pokud například používáte počítač Mac, příkaz vypadá asi takto:

wget <url> -U "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"

Pokud jste vývojář, který testuje funkčnost svého webu, možná budete muset sdělit wget, aby předával různé HTTP hlavičky. Můžete to udělat pomocí --header Přepínač. Chcete-li například odeslat X-Foo V záhlaví s hodnotou 123 spusťte následující příkaz:

wget <url> --header "X-Foo: 123"

Pokud chcete nastavit více vlastních záhlaví, můžete použít --header přepínejte tak často, jak je potřeba.

Stáhnout chráněné soubory

V příkladech jsme se zatím zabývali stahováním veřejně dostupných souborů. Mohou však nastat situace, kdy potřebujete stáhnout soubory z webu chráněného přihlášením. V těchto situacích můžete použít rozšíření prohlížeče, jako je CurlWget (Chrome) nebo collect (Firefox). Když se pokusíte stáhnout soubor, tato rozšíření vygenerují úplný příkaz wget, který můžete použít ke stažení souboru. V tomto článku se budeme zabývat pouze CurlWgetem, i když cliget funguje podobným způsobem.

Jakmile budete mít CurlWget nainstalovaný v Chrome, přejděte do nastavení rozšíření a změňte možnost nástroje z „curl“ na „wget“. Poté přejděte do nastavení stahování (nabídka se třemi tečkami> Nastavení> Upřesnit) a vyberte možnost „Před stažením se zeptat, kam uložit každý soubor“.

Dále zkuste stáhnout soubor z Chromu. Zavřete dialogové okno s dotazem na umístění stahování a klikněte na ikonu CurlWget na panelu nástrojů. Získáte tak příkaz wget s user-agent, cookie a dalšími hlavičkami nastavenými, jak je uvedeno níže:

Nyní můžete zkopírovat a vložit tento příkaz do okna terminálu a stáhnout soubor. To je mimořádně užitečné v situacích, kdy potřebujete stáhnout soubor chráněný přihlášením na bezhlavý server.

Režim Wget „Spider“

Wget má funkci "web spider", která načítá stránky, ale neukládá je. To je užitečné, když potřebujete zkontrolovat nefunkční odkazy na webu. Chcete-li tuto možnost správně používat, musíte také povolit „rekurzivní stahování“, které umožní wgetu skenovat dokument a hledat odkazy na procházení.

Pokud chcete skenovat https://example.com/ , Spustit:

wget --spider -r https://example.com/

Poté, co wget načte všechny odkazy, zobrazí všechny nefunkční odkazy, jak je uvedeno:

Tento protokol můžete také uložit do souboru s -o Možnost:

wget --spider -r https://example.com -o wget.log

Později můžete pomocí grep vyhledat v protokolu konkrétní stavové kódy nebo soubory. Chcete-li například na svém webu najít přesměrování 301, můžete použít:

grep -B 301 wget.log


Cent OS

Jak nainstalovat Chamilo na CentOS 7

  1. Jak nastavit vysokou dostupnost pro Správce zdrojů – Část 6

  2. Jak nainstalovat FlintCMS na CentOS 7

  3. Jak zakázat lvmetad v CentOS/RHEL

Jak nainstalovat ClamAV na CentOS 6

  1. Jak nainstalovat Zabbix Server 4.x na CentOS 6 / RHEL 6

  2. Jak vypnout monitor pomocí skriptu Python v Ubuntu

  3. CentOS / RHEL :Jak změnit UUID souborového systému

Jak vytvářet, obnovovat a odstraňovat snímky obrazů virtuálních strojů v RedHat Virtualization

  1. Jak nainstalovat Gnome GUI na CentOS 8

  2. Jak nainstalovat WordPress s Apache na CentOS 7

  3. Jak nainstalovat Subversion (SVN) 1.8.19 na CentOS/RHEL 7/6/5