Tento zápisník vyjadřuje mé soukromé názory. Své názory na mé názory zanechávejte v komentářích. Obvykle na ně však nebude brán zřetel :-)
Novinky
wget - stahujme kvalitně - Podrobný návod s příklady
wget je jedna z nejužitečnějších utilit, kterou lze v GNU utilitách nalézt. Jejím určením je jednoduché stahování souborů, stránek i celých mirrorů z internetu. Pro svou oblibu byl portován na spoustu operačních systémů - tedy i na windows (nativní win32).
Seznámení
wget je konzolová aplikace a jako taková se i používá - jednoduše, s pár příkazy, získáváme obrovskou sílu při stahování. Samozřejmě existují grafické klikací nástavby, ale konzole je konzole
:-)
Jako takový má wget asi 100 příkazů ;-) což je docela problém, ale lze vybrat z nich ty nejpoužívanější a nejpraktičtější. O to se posnažím i já zde.
Základní použití
- wget http://www.example.org
- Nejzákladnější použití - stáhne se index.html (popř. ten soubor, který se vrací na /)
- wget ftp://ftp.linux.cz/pub/ROADMAP.html
- Stáhne soubor ROADMAP.html pomocí protokolu ftp.
Příkazy jednoduché
- wget -i soubor
- Pokud máte spoustu odkazů, které chcete stáhnout, je jednodušší si je uložit do souboru a tímto příkazem říct, že se má stahovat to, co je napsáno v tomto souboru.
- wget -c ftp://ftp.linux.cz/pub/ROADMAP.html
- Příkaz -c říká wgetu, že má navázat stahování souboru po přerušení. Soubor se tedy nestahuje celý znovu, ale stahování se napojí na již existující část.
- wget --http-user=jmeno --http-password=heslo http://www.example.org/
- Příkazy --http-user a --http-password zasílají jméno a heslo pro přihlášení přes http-autentifikaci.
- wget --referer=http://www.example.org/ http://www.example.org/image.gif
- Příkaz --referer umožňuje poslat v hlavičce položku refereru, tedy adresu stránky, ze které se dostal prohlížeč na požadovanou stránku. Je to výhodné, pokud server sleduje referery pro blokování hot-linkingu.
- wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; rv:1.7.3) Gecko/20040911 Firefox/0.10" http://www.example.org
- Parametr --user-agent (zkráceně -U) je samovysvětlující - posílá určeného user-agenta serveru, výhodné pro stahování např. celého webu, někdy se user-agent testuje (a Wget/1.9 jasně říká, že jde o stahovač :-)
- wget --limit-rate=hodnota http://www.example.org
- Velmi užitečná volba --limit-rate nastavuje maximální hodnotu rychlosti, jakou se bude stahovat. Vhodné pro zpomalení stahování na přetížených komunitních sítích, ale i pro dial-upisty. Hodnoty jsou v bajtech za sekundu, pokud chceme limitovat na kilobajty, stačí použít volbu např. takto --limit-rate=30k, čímž se nastaví limit na 30kb/s. Je dost možné, že váš wget tuto volbu mít nebude, můj z Fedora Core ve verzi GNU Wget 1.9+cvs-stable (Red Hat modified) jí má.
Příkazy komplexnější
- wget -r -l 1 -k http://www.example.org/
- Nastavení rekurzivního stahování (-r) s maximální hloubkou stahování (-l 1, kde 1 znamená, že se stáhne vše do 1. úrovně ze stránky, kdyby byla úroveň nastavena na 2, stáhne se vše, co je v první úrovni plus to, na co první úroveň odkazuje) s převodem odkazů pro lokální prohlížení (-k).
- wget -r -l 2 -nd http://www.example.org/
- Nastavení rekurzivního stahování (-r) s maximální hloubkou stahování (-l 2), ale bez tvorby adresářové struktury (-nd), všechny soubory jsou tedy uloženy do aktuálního adresáře. Možná je vhodná chvíle říct ještě několik příkazů pro práci s adresářovou strukturou a pro rekurzivní stahování:
- -nH
- nevytvoří se adresář se jménem serveru (zde tedy adresář www.example.org/ v aktuálním adesáři
- --cut-dirs=číslo
Odřízne
adresářovou strukturu. Předchozí příkaz zruší adresář se jménem serveru, tento příkaz z leva odřezává názvy adresářů, pokud použijeme např. wget -r -l 2 -nH --cut-dirs=2 http://www.example.org/dir1/dir2/dir3, pak se vytvoří pouze adresář dir3/.- -P adresář
- Nastaví adresář, do kterého se budou stažené soubory ukládat. Defaultně je to "." - aktuální adresář.
- -k (--convert-links)
- Slouží pro převod odkazů v souborech, aby odkazovaly na lokální soubory, a byly vhodné pro off-line prohlížení.
- -L
- Stahuje pouze relativní odkazy.
- -np
- Stahuje pouze soubory, které jsou v adresářové struktuře na serveru hlouběji než specifikovaná adresa.
- wget -r -l 2 -nc http://www.example.org/
- Volba -nc (--no-clobber) má výhodné použití, pokud se přerušilo stahování např. celé web stránky. Bez tohoto parametru wget stahuje všechny soubory znovu, pokud nalezne již existující soubor, vytvoří nový s příponou o jednu větší, než je existující soubor (soubor, který již je stažen, má pořadové číslo 0, které se nezobrazuje, podruhé stažen má příponu .1, pak .2 atd.). S tímto příkazem se wget chová tak, že již stažené soubory ignoruje (pozor - nemusí být kompletní, ale přesto je ignoruje!).
- wget -p http://www.example.org/
- Volba -p říká wgetu, že má stáhnout stránku (v tomto případě to je index.html z http://www.example.org) a to se všemi soubory, které jsou nezbytné pro zobrazení stránky - obrázky, CSS soubory. Lze samozřejmě kombinovat i s rekurzivním stahováním.
- wget -m http://www.example.org/
- Příkaz -m slouží pro mirrorování celých webů. Tímto příkazem se nastaví tyto volby: -r -N -l inf -nr, tedy rekurzivní stahování (-r), nastavení timestampů souboru, aby souhlasil s tím na serveru (-N), nekonečnou hloubku stahování (-l inf).
- wget -A pdf -r -l 1 http://www.magtypo.cz
- A zde bych rád ukázal velmi užitečný příkaz -A a -R. Příkaz -A pripona1,pripona2,... říká, že se mají stáhnout pouze soubory s určenou příponou. V našem příkladu chceme stáhnout časopisy Typo v PDF formátu, které tam jsou volně ke stažení. Vždy je však stažen soubor index.html (nebo ten, na který ukazujete), aby bylo možné zjistit, které soubory se mají stahovat. Opačným příkazem je -R pripona1,pripona2,..., který naopak říká, že soubory s touto příponou se stahovat nemají.
- wget -w 10 --random-wait -m http://www.example.org/
- Při stahování třeba celého mirroru se může hodit nastavit náhodné časy přístupů na server, protože některé to mohou testovat a přístup zakázat. Příkazem -w čekání se nastavuje čas v sekundách a --random-wait říká, že čas mezi přístupy bude z intervalu 0 až 2*čekání.
Závěrem
Doufám, že tento návod pomůže ke kvalitnějšímu a radostnějšímu přesunu obsahu Internetu na vaše stagigabajtové disky :-)
Vycházel jsem ze svých zkušeností z používání wgetu, dále také z manuálu, manuálové stránky programu a také wget --help. Rozhodně doporučuji podrobnější prozkoumání manuálu, protože jsem např. víceméně vynechal práci s FTP.
Snad tento návod potěší nejen Johnnyho :-).
@
Poznámky
- Refreshing...
Používám
Výběr článků
Poslední diskuse
- windows-1250 nebo cp1250?
(viagra_canadian, 05.26.2014 13:26) - windows-1250 nebo cp1250?
(without, 05.26.2014 13:26) - windows-1250 nebo cp1250?
(cialis_canada, 05.26.2014 13:26) - windows-1250 nebo cp1250?
(viagra_canada, 05.26.2014 13:26) - mirne linuxove :)
(Dorothylock, 05.26.2014 10:26) - mirne linuxove :)
(Annetteer, 05.25.2014 18:25) - windows-1250 nebo cp1250?
(canadian_cialis, 05.25.2014 17:25) - windows-1250 nebo cp1250?
(cialis_online, 05.25.2014 17:25) - windows-1250 nebo cp1250?
(buy_cialis, 05.25.2014 17:25) - windows-1250 nebo cp1250?
(generic_viagra, 05.25.2014 17:25)
Sousedé
Bedlivě sleduji
Čtu
- ... pod kapnou života
- Blog počítačového nadšence
- Blok Filipa Rožánka
- chomat.net [blog]
- conBlog
- Dagblog
- Deník superženy
- e-Deník
- Hlava
- Holasí net - weblog
- Krutá realita
- Lackylog
- Marigold
- minarik.net - odplivník
- Pixy
- POOH
- Prochaine Bloguje
- Rebe
- Spravodaj
- Středně propečený blog
- Svět pohledem shora
- WebSky
- Yuhůův weblog o webu
- Zápisky.info
Komentáře ke článku
TYPO_2003_02.pdf
TYPO_2003_03.pdf
TYPO_2003_04.pdf
TYPO_2003_05.pdf
A příkazem wget -i typo --base=http://www.magtypo.cz/download/ se stáhnou tyto soubory.
Nebo lze příkazem --force-html vynutit změnit na HTML a pak se stahují URL v klasickém HTML formátu (tedy <a href="http://www.example.org/">example</a>). V kombinaci s --base=url se řeší problém pro odkazy v relativním formátu.
X3
Mám v plánu ještě udělat "pokročilejší" návod, ale ještě jsem se k tomu nedostal.
Díky za pochvalu :-)
díky za odpověď
-U "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a6) Gecko/20041221 Firefox/1.0+"
popř. v dlouhé verzi
--user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a6) Gecko/20041221 Firefox/1.0+"
Jak se zjistí identifikační řetězec IE nevím, ale lze jej zjistit na této jednoduché stránce http://www.cetoraz.info/pavel/ua.php.
pochopil jsem to tak, že po spuštění si program hledá výchozí soubor (index..., default...) a ten pak prochází a kouká na další odkazy, obrázky, *.cs, *.js soubory..., co v něm jsou a podle toho stáhne další stránky co jsou potřeba. Alespoň si myslím že mi to tak nějak stahuje.
Mám ale stránky kde jsou odkazy řešeny takto:
onClick="window.location.href='./zavody.html'"
Dá se nějak určit že chci stáhnout všechny soubory a podadresáře co jsou na té dané URL?
Díky moc za radu...
Dan
Takže tady je:
ftp://user:password@host/path
U:\>C:\Temp\wget.exe http://wdb.cnb.cz/CNB_TXT/KURZY.K_CURRTXT
--14:09:27-- http://wdb.cnb.cz/CNB_TXT/KURZY.K_CURRTXT
=> `KURZY.K_CURRTXT'
Resolving wdb.cnb.cz... done.
Connecting to wdb.cnb.cz[193.179.126.142]:80... failed: Bad file descriptor.
Retrying.
Diky
--23:03:32-- http://www.greenday.ic.cz/ai.htm
=> `www.greenday.ic.cz/ai.htm'
Resolving www.greenday.ic.cz... done.
Connecting to www.greenday.ic.cz[217.11.237.36]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
[ ] 7,787 14.32K/s
23:03:33 (14.32 KB/s) - `www.greenday.ic.cz/ai.htm' saved [7787]
Removing www.greenday.ic.cz/ai.htm since it should be rejected.
FINISHED --23:03:33--
Downloaded: 7,787 bytes in 1 files
neni to naka specialita windowsackyho wgetu, nebo neco delam blbe? zkousel sem to i bez toho filtru na pripony ale bezuspesne :(
wget http://217.117.222.58/jpg/image.jpg
--17:33:04-- http://217.117.222.58/jpg/image.jpg
=> `image.jpg'
Connecting to 217.117.222.58:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 31,512 (31K) [image/jpeg]
100%[=====================================================>] 31,512 17.34K/s
17:33:06 (17.27 KB/s) - `image.jpg' saved [31512/31512]
jsk
Jak je to s wgetem na windows netuším, nezkoušel jsem.