TIP#1117: Jak ve (nejenom) Windows používat curl? A k čemu je to vlastně dobré?

Někdy už poměrně dávno vznikl tip K čemu se vám může hodit wget?. Na jeho konci je zmínka, že podobně jako wget je užitečná pomůcka, jedna z dalších alternativ je curl. Stejně jako wget jde o pomůcku pocházející z Linuxového prostředí, ale nic nebrání tomu, abyste si ji pořídili pro Windows.

curl si především můžete stáhnout z curl.haxx.se/download.html – bude to to nejjednodušší řešení, protože tam najdete i verzi pro Windows (starší než desítky) – nejlépe „generic“ verzi, případně můžete rovnou 64 bitovou. Tím si pořídíte curl.exe a buď si ho umístěte do samostatné složky nebo někam, odkud ho budete moci rovnou spouštět – někam co je na cestě pro spouštění programů. Nebo si složku s curl do PATH prostě přidejte.

Pokud máte Windows 10 a build alespoň 10763, tak dobrá zpráva je, že curl už je přímo součástí. Je k nalezení ve \Windows\System32 a není tedy už nutné nic stahovat.

curl umí spoustu věcí

Jak jste asi uhodli už z prvního odstavce, curl je vhodná alternativa pro wget – tedy především pro stahování obsahu z webů přímo z příkazové řádky. Ať už jednorázově nebo opakovaně. Stahovat umí klasicky jednu adresu (soubor, stránku), ale umí toho ale mnohem více – vedle HTTP/HTTPS ovládá i všechny další obvyklé protokoly (FTP, SMTP, IMAP, POP3, atd), zvládá i nahrávání (odesílání).  Návod najdete například v curl.1 the man page (a řadě dalších podobných) a hodit se může i Using curl to automate HTTP jobs

Pokud dumáte nad rozdílem mezi wget a curl? Třeba ten, že wget umí zrcadlení – to od curl nečekejte, umí sice stahovat více věcí, včetně podpory wildcard (*, rozsahy, atd), ale pro vytvoření „kopie“ webu ho použít nemůžete. curl se ale lépe používá pro automatizovaní webu a situace, kdy nejenom stahujete, ale chcete i něco odesílat (například „vyplnit“ formulář a odeslat).

Až se vydáte curl zkoumat, tak nezapomeňte, že jen tak jako „curl adresa“ se stažené neukládá do souboru, míří na stdout. Pro uložení do souboru se používá klasické přesměrování „curl adresa >soubor“ nebo je nutné použít parametr „curl adresa -O“ použije jméno stahovaného a „curl adresa -o soubor“ umožní určit vlastní.

Stejně tak je dobré vědět, že případné http přesměrování curl nebude sledovat pokud mu o to neřeknete – k tomu slouží „-L“ parametr.

TIP: curl vlastně patří do tohoto staršího velmi užitečného tipu: Aplikace pro Linux, pro které nebudete potřebovat GUI, prostě jenom terminal

Hodit se může ještě parametr -C – ten způsobí pokračování dřívějšího přerušeného stahování (má i parametr v podobě ofsetu, kterým můžete určit kolik bajtů se má přeskočit od začátku souboru).

Omezit šířku využitého pásma můžete pomocí –limit-rate (následovat musí číslo, kdy třeba 1024B bude znamenat 1024 bajtů za sekundu).

Budete-li použít curl pro zkoumání hlaviček/komunikace se serverem, tak v tom pomůže -v (v jako verbose) a -trace (hodně detailní informace).

Jak už bylo zmíněno výše, curl umí i nahrávat soubory na FTP a ještě zajímavější, dá se použít třeba i pro odesílaní e-mailu – tam funugují parametry –mail-from a –mail-rcpt – text mailu můžete buď psát ručně nebo předat pomoci > a souboru (poslední řádka e-mailu mustí být „.“).

Reklamy