Základní principy
Úvodní stránka Historie verzí Fórum Zaslání dotazu Principy downloaderů Stáhnout aktuální verzi

Na této stránce jsou popsány principy fungování downloaderů. Jedná se o vlastnosti, které by měl každý downloader splňovat. Web Downloader podporuje téměř 100% všech popsaných vlastností.

Definice seznamu souborů určených ke stahování

definice domén – jedná se o stanovení seznamu všech doménových jmen, ze kterých bude probíhat stahování
stanovení povolených nebo zakázaných souborů či adresářů – pro stahování je možné určit seznam souborů, jejich koncovek popř. seznam adresářů, který si uživatel přeje nebo nepřeje stahovat. V případě stahování celých webových prezentací, tzn. nejen jednotlivých souborů, dochází vždy ke stažení celé HTML stránky, i když samotná stránka neodpovídá definovanému filtru.
definice regulárních výrazů pro stahování – filtry pro stránky mohou být závislé nejen na seznamech souborů popř. určitých podřetězců, ale také je možné definovat regulární výraz (je to řetězec, který popisuje celou množinu řetězců), vůči kterému se potom odkaz kontroluje. V závislosti na nastavení je potom možné stahovat například pouze ty soubory, které regulárnímu výrazu odpovídají, popř. naopak.
definování hloubky stahování – hloubku stahování je možné nastavovat různými způsoby. Je to možné například relativně vzhledem k první zadané URL adrese, stanovením počtu úrovní adresářů výše (blíže k doménovému jménu), popř. hlouběji (dále od doménového jména).
stanovení limitních hodnot souborů – je možné nastavovat maximální popř. minimální velikost stahovaných souborů.

Stanovení způsobu sledování odkazů

uzavřenost na doménová jména – stahování souborů může být omezeno pouze na seznam domén (viz výše), popř. stahování může být omezeno pouze na aktuální, právě stahovanou doménu
uzavřenost na přístupové porty – každý webový server zpřístupňuje informace na konkrétním portu. Na tomto portu je pak většinou poskytován celý obsah. Přechod na jiné porty je opět možné zakázat, popř. povolit například konkrétní seznam portů.
uzavřenost na protokoly – každý robot podporuje určitou sadu protokolů, na kterých je schopen se službami na internetu komunikovat. Standardní webový pavouk podporuje protokol HTTP. Další možné protokoly, které některé z výše zmiňovaných nástrojů podporují, jsou např. HTTPS či FTP.

Způsob stahování

paralelní stahování a možnosti jejich nastavení – webový robot může stahovat stránky sériově, tedy postupně za sebou. Toto řešení však není optimální, protože např. při stahování již dvěma vlákny může dojít k navýšení rychlosti stahování jednoho souboru i o desítky procent. Stahování je tedy možné paralelizovat a to buď tak, že se jeden soubor bude stahovat několika vlákny, popř. několik různých souborů bude stahováno souběžně. Další možností paralelního stahování je získávání souborů z několika zrcadel (jeden stejný soubor je uložen na více serverech) současně.
nastavení zdrojové stránky, tzv. „referer“ – některé servery nastavují kontrolu pro stahování souborů. Tato kontrola může být nastavena např. tím způsobem, že stahované soubory budou stahovány pouze přímým odkazem ze svých stránek. Tuto kontrolu je možné technicky obejít nastavením „refereru“, který se při běžném použití odkazů generuje automaticky. Pro webové roboty může být toto zajímavá možnost nastavení, jestliže není možné nebo reálné, abychom stahovali celý web.
možnosti datové komprese – v případě, že robot kompresi podporuje, může s požadavkem zaslat na server také informaci o této své schopnosti. V případě, že server tuto kompresi podporuje, může zpět vrátit odpověď v komprimované podobě a musí o tom informovat v zaslaných metadatech (hlavičkách). Množství přenášených dat je možné tímto způsobem u textových informací výrazně snížit.
omezení rychlosti stahování – v případě sdíleného připojení k internetu je vhodné např. omezit maximální rychlost stahování, aby linka byla volná pro ostatní uživatele.
omezení délky stahování – v případě, že to robot podporuje, je možné omezit stahování v časových jednotkách (na maximální dobu stahování), popř. v množství přenesených dat.
podpora „robots exclusion standard“ – tento standard definuje pravidla, která by měl webový pavouk respektovat. Jedná se většinou o definici částí webu, které by neměl webový pavouk procházet nebo se může jednat například o nastavení časového intervalu, ve kterém je možné stránky stahovat.

Způsob ukládání stažených souborů

ukládání s absolutními nebo relativními cestami odkazů – při ukládání HTML souborů je možnost uložení souborů s relativními cestami vhodnější pro budoucí přesun celého adresáře se staženým webem
možnost uložení upravených nebo původních stránek – při stahování souborů je často nutné soubor před uložením upravit tak, aby lokální kopie odkazovala na současně stažené soubory. Občas je ale vhodné zachovat původní verzi stahovaného souboru.
způsob pojmenovávání stažených souborů – pojmenování souboru může být například závislé na tom, zda již soubor se stejným názvem na disku existuje. Dalším aspektem je uložení souboru, jehož zdroj na serveru je přístupný s upřesňující GET informací. Každý takový řetězec v sobě může obsahovat řadu nestandardních znaků, které není možné uložit na disk a je nutné řešit jejich transformaci.

Způsob procházení HTML stránek a vyhledávání odkazů

možnost definice vlastních elementů – při procházení HTML stránek existují případy, kdy je vhodné mít možnost zadat určité entity, které budou při procházení dokumentů zpracovávány.
zpracování formulářů – na některých webových stránkách jsou umístěny formuláře, např. pro vyhledávání nebo pro přihlášení. V případě zadání konkrétního výrazu, např. do vyhledávače, je poté možné stáhnout vyhledané stránky na základě vygenerovaného odkazu včetně např. skrytých polí ve webovém formuláři.
zpracování specifických datových souborů (javascript, java, flash, …) – každý webový pavouk disponuje sadou algoritmů pro zpracování různých typů souborů. Standardem jsou HTML stránky. Mezi další typy, které závisí na možnostech robota, jsou: zpracování kaskádních stylů (.css), javascriptů (.js), získávání odkazů z flashe (.swf), popř. javovských (.class) souborů a mnohé další.

Možnosti připojení na server

možnost připojení přes proxy server – v řadě podnikových sítí se k přístupu na internet používá proxy server. Může se jednat o transparentní proxy, na kterou se není nutné přihlašovat, stále se ale používají i proxy servery, do kterých je nutné se přihlašovat, potom je tento parametr jediný způsob, jak požadované stránky stáhnout.
možnosti http autentikace – některé stránky, které jsou chráněny heslem, bývají zabezpečeny pomocí basic nebo digest přístupové autentikace. V případě podpory tohoto parametru ze strany robota je přístup na tyto stránky možné uskutečnit po zadání uživatelského jména a hesla.
podpora transportních protokolů – minimálním požadavkem na přenos souborů mezi klientem a webovým serverem je podpora HTTP protokolu. Většina robotů se dnes snaží pokrýt větší skupinu služeb, takže podpora FTP, HTTPS, popř. jiných protokolů, se dnes stává standardem.
definování počtu připojení – při komunikaci s webovým serverem je možné nastavovat počet paralelních připojení

Ostatní funkce

generování seznamu stránek podle definovaných vzorků – většina webových pavouků podporuje stahování stránek na základě daného seznamu stránek. V případě, že potřebujeme stáhnout stránky, které jsou specificky číslované, popř. jinak systematicky označené, je možné, v případě podpory tohoto parametru, takový seznam automaticky vygenerovat jako integrální součást aplikace.
statistiky stahování – po dokončení stahování souborů z webového serveru je možné zobrazit statistiky stahování všech souborů.

V případě problémů nebo dotazů mě můžete kontaktovat na emailové adrese info@webdownloader.cz.