Jeffrey Cross
Jeffrey Cross

Puzanje AJAX-a

Tradicionalno, web-paukov sustav je zadužen za povezivanje s poslužiteljem, rušenje HTML dokumenta, skeniranje dokumenta za sidrenje veza s drugim HTTP URL-ovima i ponavljanje istog procesa na svim otkrivenim URL-ovima. Svaki URL predstavlja različito stanje tradicionalne web-lokacije. U AJAX aplikaciji veći dio sadržaja stranice nije sadržan u HTML dokumentu, već ga dinamički umeće Javascript tijekom učitavanja stranice. Nadalje, veze sidra mogu potaknuti JavaScript događaje umjesto ukazivanja na druge dokumente. Stanje aplikacije određeno je nizom Javascript događaja koji su pokrenuti nakon učitavanja stranice. Rezultat toga je da tradicionalni pauk može vidjeti samo mali dio sadržaja web-lokacije i ne može indeksirati nijednu informaciju o stanju aplikacije.

Kako ćemo onda riješiti problem?

Puzanje AJAX-a kao ljudsko bi za indeksiranje AJAX-a, pauk treba razumjeti više o stranici nego samo HTML. Potrebno je biti u stanju razumjeti strukturu dokumenta kao i Javascript koji njime manipulira. Da bi se moglo istražiti dublje stanje aplikacije, proces indeksiranja također mora biti u stanju prepoznati i izvršiti događaje unutar dokumenta kako bi simulirao putanje koje bi mogao poduzeti stvarni korisnik.

Papir Shreeraj Shaha, Crawling Ajax-vođen Web 2.0 aplikacijama, čini lijep posao opisivanjem pristupa koji se temelji na događajima na web indeksiranju. Radi se o stvaranju pametnije klase softvera za indeksiranje weba koji može dohvatiti, izvršiti i raščlaniti dinamički DOM sadržaj koji pokreće Javascript, baš kao što bi čovjek koristio web-preglednik s puno mogućnosti.

Pristup temeljen na protokolu ne radi kada alat za indeksiranje dođe do ugrađene stranice Ajaxa. To je zato što su svi ciljani resursi dio JavaScript koda i ugrađeni su u DOM kontekst. Važno je razumjeti i aktivirati tu aktivnost temeljenu na DOM-u. U tom procesu, to je dovelo do drugog pristupa koji se naziva "događajima". Ona ima tri ključne komponente

  1. Javascript analiza i interpretacija s povezivanjem na Ajax
  2. Obrada i otprema DOM događaja
  3. Izdvajanje dinamičkog sadržaja DOM-a

Neophodni alati Najlakši način za implementaciju AJAX-omogućenog alata za pokretanje događaja je korištenje modernog preglednika kao temeljne platforme. Postoji nekoliko dostupnih alata, a to su Watir i Crowbar, koji će vam omogućiti da kontrolirate Firefox ili IE iz koda, omogućujući vam da izdvojite podatke o stranici nakon obradio je bilo koji Javascript.

Watir je knjižnica koja omogućuje automatizaciju preglednika pomoću Ruby. Izvorno je napravljen za IE, ali je prenesen i na Firefox i Safari. Watir API omogućuje pokretanje procesa preglednika, a zatim izravno izdvajanje i klikanje veza za sidrenje iz vaše Ruby aplikacije. Ova aplikacija sama čini mi žele da se više upoznati s Ruby.

Crowbar je još jedan zanimljiv alat koji koristi bezglavu verziju Firefoxa za prikaz i analizu web sadržaja. Stvar je u tome što pregledniku pruža sučelje web-poslužitelja, tako da možete izdavati jednostavne GET ili POST zahtjeve s bilo kojeg jezika, a zatim prema potrebi iscijediti rezultate. To vam omogućuje interakciju s preglednikom čak i iz jednostavnih skripti iz naredbenog retka, koristeći curl ili wget.

Koji alat koristite ovisi o potrebama vašeg alata za indeksiranje. Crowbar ima prednost što je jezik agnostik i jednostavan za integraciju u tradicionalni dizajn alata za indeksiranje kako bi izdvojio informacije o stranici koje bi bile prisutne tek nakon što se stranica učita. Watir, s druge strane, pruža dublji, interaktivni pristup pregledniku, omogućujući vam da pokrenete naknadne Javascript događaje. Loša strana je u tome što je logika koja se nalazi u robotu koji može kopati duboko u stanje aplikacije malo kompliciranija, a uz Watir ste vezani za Ruby koji može ili ne mora biti vaša šalica čaja.

Crowbar - bez glave na poslužitelju Firefox Watir - daljinski upravljač u pregledniku Ruby Crawling Web 2.0 aplikacije (PDF)

Udio

Ostavite Komentar