Обхождане на AJAX - 💡 Fix My Ideas

Обхождане на AJAX

Обхождане на AJAX


Автор: Ethan Holmes, 2019

Традиционно, системата за уеб паяк е натоварена със свързването към сървър, премахване на HTML документа, сканиране на документа за свързващи връзки към други HTTP URL адреси и повтаряне на същия процес върху всички открити URL адреси. Всеки URL представлява различно състояние на традиционния уебсайт. В AJAX приложение голяма част от съдържанието на страницата не се съдържа в HTML документа, а се вмъква динамично от Javascript по време на зареждането на страницата. Освен това, котвените връзки могат да задействат JavaScript събития, вместо да сочат към други документи. Състоянието на приложението се определя от поредицата от Javascript събития, които бяха задействани след зареждането на страницата. Резултатът е, че традиционният паяк може да вижда само малка част от съдържанието на сайта и не може да индексира нито една информация за състоянието на приложението.

И така, как да решим проблема?

Обхождане AJAX подобно на човека За да обхожда AJAX, паякът трябва да разбере повече за дадена страница, отколкото само неговия HTML. Тя трябва да може да разбере структурата на документа, както и Javascript, който го манипулира. За да може да се изследва по-дълбокото състояние на приложението, процесът на обхождане трябва също така да може да разпознава и изпълнява събития в документа, за да симулира пътищата, които могат да бъдат взети от истинския потребител.

Документът на Shreeraj Shah, Crawling Ajax-задвижвани Web 2.0 приложения, свършва хубава работа, описвайки подхода, ориентиран към събития, към уеб обхождането. Става дума за създаването на по-интелигентен клас софтуер за уеб обхождане, който може да извлича, изпълнява и анализира динамично, задвижвано от Javascript съдържание на DOM, подобно на човек, който ще използва пълнофункционален уеб браузър.

Подходът „задвижван от протокол“ не работи, когато роботът попадне на вградена страница на Ajax. Това е така, защото всички целеви ресурси са част от JavaScript кода и са вградени в DOM контекста. Важно е да разберете и да задействате тази дейност на базата на DOM. В този процес това е довело до друг подход, наречен „задвижване от събития“. Той има следните три основни компонента

  1. Javascript анализ и интерпретация с свързване към Ajax
  2. Обработка и изпращане на събития от DOM
  3. Извличане на динамично съдържание на DOM

Необходимите инструменти Най-лесният начин за внедряване на AJAX-активиран, управляван от събития робот, е да се използва модерен браузър като основна платформа. Има няколко налични инструмента, а именно Watir и Crowbar, които ще ви позволят да контролирате Firefox или IE от код, което ви позволява да извличате данни за страници след той е обработил всички Javascript.

Watir е библиотека, която позволява автоматизацията на браузъра чрез Ruby. Първоначално е бил създаден за IE, но е пренесен и за Firefox, и за Safari. API на Watir ви позволява да стартирате процес на браузър и след това директно да извличате и щраквате върху котви връзки от приложението си Ruby. Само това приложение ме кара да искам да се запозная по-добре с Ruby.

Crowbar е друг интересен инструмент, който използва обезглавена версия на Firefox, за да визуализира и анализира уеб съдържание. Хубаво е, че осигурява браузър интерфейс за уеб сървър, така че можете да издавате прости GET или POST заявки от всеки език и след това да изстържете резултатите, ако е необходимо. Това ви позволява да взаимодействате с браузъра дори от прости скриптове от командния ред, като използвате curl или wget.

Кой инструмент използвате, зависи от нуждите на робота. Crowbar има предимството, че е агностичен език и е лесен за интегриране в традиционен дизайн на робота, за да извлича информация за страница, която ще присъства само след като дадена страница завърши зареждането. Watir, от друга страна, ви дава по-дълбок, интерактивен достъп до браузъра, което ви позволява да задействате следващи Javascript събития. Недостатъкът е, че логиката зад един робот, който може да копае дълбоко в състояние на приложение, е доста по-сложна, а с Watir сте обвързани с Ruby, която може или не може да бъде вашата чаша чай.

Crowbar - сървърно обезглавен Firefox Watir - дистанционно управление на браузъра в Ruby Crawling Web 2.0 приложения, базирани на Ajax (PDF)



Може Да Се Интересувате

Инвентахолич отдръпва завесата, като изобретява в Maker Faire

Инвентахолич отдръпва завесата, като изобретява в Maker Faire


Попитайте CRAFT: Калъфът за лаптоп е статичен и изправя панталоните за Bootcut

Попитайте CRAFT: Калъфът за лаптоп е статичен и изправя панталоните за Bootcut


Добре дошли на зрителите на Nightline!

Добре дошли на зрителите на Nightline!


Изгубеният транзистор?

Изгубеният транзистор?