Chickenfoot: автоматизируем свою жизнь в Web

Что такое Chickenfoot (groups.csail.mit.edu/uid/chickenfoot/index.php)? Это современная технология автоматизации и кастомизации web-серфинга, реализованная в виде расширения в популярном браузере Firefox. Эта технология решает две основные задачи: во-первых, это автоматизация рутинных действий, совершаемых пользователем в браузере, например, ежедневный вход в web-интерфейс своей почты на mail.ru, заполнение многочисленных анкет при регистрации на web-сервисах, скачка файлов с обменников и т.п. И, во-вторых, "обработка на лету" загружаемых в браузер web-страниц (пост-рендеринг), что позволяет, например, каждый раз, заходя на ваш любимый сайт новостей, автоматически вырезать бесполезный для вас блок курса валют, подгружая на это место, например, обратный счетчик оставшихся дней до президентских выборов. Или вы можете добавить выпадающие меню в свой любимый сайт с важными закладками на этом сайте или вообще самовольно полностью сменить весь дизайн (или только цветовые тона) выбранного сайта на свой, даже не ставя в известность администратора этого сайта. Таким образом, из пассивного просмотрщика и кликера уже готовых страниц сайтов вы превращаетесь в активного их модификатора, получая в свои руки универсальный инструмент "затачивания веба" под себя и свои сколь угодно требовательные и изысканные вкусы. И тут важно сразу понять, чем же таким особенным отличается этот новичок от более-менее аналогичных разработок, уже существующих и известных относительно давно? Сравним отличия и похожести Chickenfoot с Greasemonkey и CoScripter как наиболее известными аналогичными инструментами по созданию так называемого mashup web на стороне клиента, а попутно бегло познакомимся с его конкурентами.

Greasemonkey (en.wikipedia.org/wiki/GreaseMonkey) - суперпопулярное расширение для браузеров Firefox и Chrome, которое позволяет выполнять пост-рендеринг страниц и у которого также существует уже огромная база (userscripts.org) готовых скриптов под любые мыслимые и немыслимые задачи и сайты, но... который требует знания модели DOM браузера, а также хотя бы сносного понимания JavaScript. С Chickenfoot всё намного проще - в идеале вам даже не придётся заглядывать в исходник HTML модифицируемой страницы, и, конечно же, знание JavaScript тут совсем необязательно. Фишка в том, что для идентификации используемых элементов web-страницы достаточно указать видимый текст на этих элементах. Пусть, например, имя элемента search box страницы - sbox, тогда для загрузки своей поисковой строки 'my search query' в этот элемент на GreaseMonkey вам придётся написать что-то вроде

document.getElementById ('sbox').value = 'my search query'

тогда как, используя язык Chickenfoot,

enter('search the web', 'my search query')
 

Ну, опять же, ещё раз повторюсь: описывая в различных интернет-статьях автоматизирующие серфинг функции Chickenfoot, их авторы почти всегда забывают про его широкие возможности по пост-рендерингу страницы.

Для продвинутых пользователей добавлю: Chickenfoot позволяет использовать в симбиозе вместе со своим родным языком, в котором есть все необходимые основные web-операции, также и старый-добрый JavaScript. Равно как через механизм подключаемых библиотек можно исполнять уже готовые специализированные JavaScript-скрипты, как, например, готовые библиотеки по работе с сервисами Google или торговле на eBay, или библиотеку по запуску тех же скриптов для Greasemonkey.

Интересно, что Chickenfoot разрабатывается как некоммерческий исследовательский проект Массачусетским Технологическим Университетом, крупнейшим спонсором которого является IBM, у которой есть свой аналог Chickenfoot - это такой же некоммерческий исследовательский проект, но уже под названием CoScriptor (services.alphaworks.ibm.com/coscripter). CoScriptor, использующий частично код Chickenfoot, - это ещё большее абстрагирование от кодирования в сторону более естественного человеческого языка, и он так прост, что наверняка доступен даже нашим любимым бабушкам и дедушкам, чтобы автоматизировать свой ежедневный поиск и выборку новостей об очередном повышении пенсий. Скриптование на "человекопонятных" языках программирования на Западе часто называют термином "сырое программирование" (sloppy programming). Расширение к Firefox CoScriptor - яркий носитель подобного языка программирования, и поэтому его легко можно расширить до интерфейса по управлению собственным браузером посредством голоса. Но если говорить в общем о его функциональности, у CoScriptor сильный крен именно в автоматизацию серфинга в Интернете, дополняя это физическим хранением всех скриптов на wiki-сервере проекта, что дает возможность делиться своими находками с сетевым сообществом (или некой ограниченной группой пользователей), с развитым рейтингом и классификацией всех имеющихся скриптов. CoScriptor также позволяет самостоятельно записывать всю последовательность действий пользователя в браузере, а затем воспроизвести её повторно, отредактировать или запустить при каких-либо условиях. Подобные разработки также позволяют автоматизировать тестирование (www.xakep.ru/post/34570/default.asp) как самого браузера или его плагинов, так и отдельных сайтов, программно прокручивая различные последовательности действий псевдо-пользователя при работе с тестируемым сайтом, чтобы выявить какие-то проблемы после каждого апдейта софта сайта.

Подводя итог, можно сказать, что, на мой взгляд, Chickenfoot не только удачно объединяет в себе возможности как Greasemonkey, так и CoScriptor, но и демонстрирует разумный баланс между широтой представляемых возможностей и их сложностью реализации. Ну а про разработки типа платного iMacros (en.wikipedia.org/wiki/IMacros) или Selenium IDE (www.openqa.org/selenium-ide), который представляет собой целую среду разработки по web-тестированию и автоматизации серфинга и выходит за рамки домашнего применения, вы забудете почти сразу, хотя бы раз попробовав Chickenfoot в действии. На сегодня всё, остаётся пожелать всем удачи в эффективном покорении бездонных просторов Интернета!

Игорь САВЧУК,
Blogerator.ru

Версия для печатиВерсия для печати

Номер: 

41 за 2010 год

Рубрика: 

Internet
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!