Краулинг современных веб-приложений и проект ''Роботестер''
Лекция- Computer Science
Веб-сайты значительно изменились за последние годы. Если изначально каждый сайт представлял собой статическую страницу, контент которой формировался с помощью одного запроса к серверу, то сейчас сайты (веб-приложения) стали намного более интерактивными, и их содержимое меняется в зависимости от поведения пользователя на странице. Такие приложения (Rich Internet Applications или RIA) отличаются от традиционных использованием таких технологий, как Javascript и AJAX, которые позволяют значительно менять вид и содержимое приложения без изменения адреса в браузере.
Конечно, благодаря этим изменениям сайты стали намного удобнее, однако, появились и новые проблемы. Одной из них является то, что такие приложения трудно краулить (или обходить, от слова crawl). Для обхода традиционного сайта достаточно посетить все его URL'ы, при этом переход от одного URL'а до другого осуществляется по ссылкам. Именно так и действуют поисковые роботы. Однако, такой метод неприменим для RIA. Здесь надо совершать разнообразные действия на «клиентской» стороне, чтобы попасть в новое состояние приложения или получить новый контент.
Если для поисковых роботов эта проблема не является совсем острой (пока еще большая часть ценного контента в сети может быть достигнута переходами по ссылкам), то для целей функционального тестирования краулеры очень нужны прямо сейчас.
В докладе рассказано о теоретических задачах, которые необходимо решить для построения такого краулера и об экспериментальном проекте под названием «Роботестер», который разрабатывается в Яндексе.