Управление браузером и написание сетевых ботов

Selenium Remote Control

Большинство сетевых ботов легко пишутся на Perl с использованием библиотеки WWW::Mechanize или LWP::UserAgent. Но начинаются проблемы, если целевая страница построена на AJAX, поскольку Mechanize не умеет обрабатывать Javascript.

Победить эту проблему можно, заставив обычный браузер делать то, что нужно программе. Для программистов под Windows есть модули Win32::IE::Mechanize, который худо-бедно, но все же управляет ослом и заставляет его лазить по интернету. С юниксовыми ботами несколько сложнее, поскольку браузеры приходится контролировать или через плагины, или через инъекции управляющего Javascript.

Из бесплатных инструментов мне больше всего понравились Selenium Remote Control и Watir. Первый кроссплатформенный, может стыковаться с любым языком программирования и работает практически с любым браузерами на инъекциях Javascript. Но он довольно сложен в настройке и запросто может глючить на формах, содержащих много скриптов.

Watir же может управлять только лисой, и только через плагин, который доступен для скачивания на официальном сайте. Watir не очень хорошо работает с фреймами, но зато не засоряет код полученной страницы дополнительными скриптами. Правда, у этой системы есть один недостаток, она работает только с Ruby (есть еще порт на Java, проект Watij).