Jeffrey Cross
Jeffrey Cross

Procházení AJAX

Tradičně je webový pavučinový systém pověřen připojením k serveru, stažením dokumentu HTML, skenováním dokumentu pro ukotvení odkazů na jiné adresy URL HTTP a opakováním stejného procesu na všech nalezených adresách URL. Každá adresa URL představuje jiný stav tradiční webové stránky. V aplikaci AJAX není většina obsahu stránky obsažena v dokumentu HTML, ale během načítání stránky je dynamicky vkládána pomocí jazyka Javascript. Kromě toho mohou kotevní spoje spouštět javascriptové události namísto ukazování na jiné dokumenty. Stav aplikace je definován řadou událostí Javascript, které byly spuštěny po načtení stránky. Výsledkem je, že tradiční pavouk vidí pouze malou část obsahu stránek a není schopen indexovat žádné informace o stavu aplikace.

Tak jak to jde o vyřešení problému?

Procházení AJAX jako člověk Chtěl procházet AJAX, pavouk potřebuje pochopit více o stránce, než jen jeho HTML. Musí být schopen porozumět struktuře dokumentu, stejně jako Javascriptu, který s ním manipuluje. Aby bylo možné prozkoumat hlubší stav aplikace, musí být proces procházení také schopen rozpoznat a provést události v rámci dokumentu, aby simuloval cesty, které by mohly být pořízeny skutečným uživatelem.

Papír Shreeraj Shah, Webové aplikace Crawling Ajax, dělá pěknou práci, když popisuje přístup „web-crawling“ založený na událostech. Jde o vytvoření chytřejší třídy softwaru pro procházení webem, který je schopen načíst, spustit a analyzovat dynamický obsah DOM, řízený Javascriptem, podobně jako by člověk používal plně funkční webový prohlížeč.

Přístup „protokolem řízený“ nefunguje, když prolézací modul přijde na vloženou stránku Ajax. Je to proto, že všechny cílové prostředky jsou součástí kódu JavaScript a jsou vloženy do kontextu DOM. Je důležité jak chápat, tak aktivovat tuto aktivitu založenou na DOM. V tomto procesu to vedlo k dalšímu přístupu nazvanému „event-driven“ crawling. Má následující tři klíčové komponenty

  1. Javascript analýza a interpretace s propojením na Ajax
  2. Zpracování událostí DOM a dispečink
  3. Dynamická extrakce obsahu DOM

Nezbytné nástroje Nejjednodušším způsobem implementace prolézacího modulu s podporou AJAX je použití moderního prohlížeče jako podkladové platformy. Existuje několik dostupných nástrojů, jmenovitě Watir a Crowbar, které vám umožní ovládat Firefox nebo IE z kódu, což vám umožní extrahovat data stránek po zpracoval jakýkoliv Javascript.

Watir je knihovna, která umožňuje automatizaci prohlížeče pomocí Ruby. Původně byl vytvořen pro IE, ale byl přenesen na Firefox i Safari. Rozhraní Watir API umožňuje spustit proces prohlížeče a poté přímo extrahovat a kliknout na kotevní odkazy z aplikace Ruby. Tato aplikace sama o sobě mě chce znát.

Přepínač je další zajímavý nástroj, který používá bezhlavou verzi Firefoxu k vykreslení a analýze obsahu webu. Co je v pohodě, je, že poskytuje rozhraní webového serveru do prohlížeče, takže můžete vydávat jednoduché požadavky GET nebo POST z libovolného jazyka a poté podle potřeby škrábat výsledky. To vám umožní komunikovat s prohlížečem i z jednoduchých skriptů příkazového řádku pomocí curl nebo wget.

Který nástroj používáte závisí na potřebách vašeho prohledávače. Přepínač má výhodu v tom, že je jazyková agnostic a jednoduchá integrace do tradičního návrhu prolézacího modulu, aby se získaly informace o stránce, které by byly přítomny až po dokončení načítání stránky. Watir, na druhé straně, vám dává hlubší, interaktivní přístup k prohlížeči, což vám umožní spouštět následující události Javascript. Nevýhodou je, že logika za prolézačem, který může kopat hluboko do stavu aplikace, je o něco složitější, a s Watirem jste vázáni na Ruby, který může nebo nemusí být váš šálek čaje.

Přepínač - bezhlavý prohlížeč Firefox Watir na straně serveru - dálkové ovládání prohlížeče v aplikacích Web 2.0 pro webový prohlížeč Ruby Crawling Ajax

Podíl

Zanechat Komentář