Безголовый скриптовый Firefox / Webkit на Linux? - PullRequest
45 голосов
/ 15 января 2010

Я хочу автоматизировать некоторые веб-взаимодействия, а именно периодическую загрузку файлов с защищенного веб-сайта. Это в основном включает в себя ввод моего имени пользователя / пароля и переход к соответствующему URL.

Я попробовал простые сценарии в Python, а затем более сложные сценарии, только чтобы обнаружить, что этот конкретный сайт использует какой-то отвратительный javascript и flash-механизм для входа в систему, что делает мои методы бесполезными.

Затем я попробовал HTMLUnit, но, похоже, это тоже не сработало. Я подозреваю, что использование Flash - это проблема.

Я не хочу больше думать об этом, поэтому я склоняюсь к написанию сценариев в реальном браузере для входа и получения необходимого мне файла.

Требования:

  • Запуск на сервере Linux (т. Е. X не работает). Если мне действительно нужен Х, я могу это сделать, но я не буду счастлив.
  • Будь надежным. Я хочу начать это дело и никогда больше не думать об этом.
  • Будьте в сценарии. Ничего сложного, но я должен быть в состоянии сообщить браузеру различные шаги и страницы для посещения.

Есть ли какие-нибудь хорошие наборы инструментов для безголового браузера без скриптов? Вы пробовали что-то подобное, и если да, то есть ли у вас слова мудрости?

Ответы [ 7 ]

39 голосов
/ 24 февраля 2011

А как же фантом ?

17 голосов
/ 31 мая 2010

Я выполнил аналогичную задачу со встроенным браузером IE (хотя это было приложение с графическим интерфейсом и скрытой панелью компонентов браузера). На самом деле вы можете взять любой механизм компоновки и вырезать логику вывода. Навигация должна выполняться с помощью событий, подобных сценарию.

Вы можете использовать Лом . Это безголовая версия Firefox (движок Gecko). Он превращает браузер в RESTful-сервер, который может принимать запросы («получить URL»). Таким образом, он анализирует HTML, представляет его как DOM, ожидает заданную задержку для всех выполненных сценариев.

Работает на Linux. Я полагаю, вы можете легко расширить его для своей цели, используя JS и богатые возможности XULrunner.

9 голосов
/ 08 марта 2011

Вы пробовали Селен ? Это позволит вам записать сценарий использования, используя расширение для Firefox, которое впоследствии можно будет воспроизвести с помощью ряда различных методов.

Редактировать: Я только что понял, что это был очень поздний ответ. :)

6 голосов
/ 16 мая 2011

Посмотрите на WebKitDriver . Проект включает в себя безголовую реализацию WebKit.

1 голос
/ 30 января 2010

Я не знаю, как делать флэш-взаимодействия (и мне тоже интересно), но для html / javascript вы можете использовать Chickenfoot .

А чтобы получить браузер без поддержки + с поддержкой сценариев, работающий в Linux, вы можете использовать библиотеку Qt webkit . Вот пример использования .

0 голосов
/ 02 ноября 2011

Для этого я просто пишу расширения Chrome, которые публикуются на CouchDB ( пример и его Futon ).Добавьте Couch к разрешениям в манифесте, чтобы разрешить междоменные XHR.

(Я пришел к этой теме в поисках безголовой альтернативы тому, что я делал; найдя эту тему, ясобираюсь попробовать Crowbar в какой-то момент.)

Кроме того, учитывая причудливые характеристики этого сайта, я не могу не задаться вопросом, можно ли использовать какую-то дыру в безопасности, чтобы обойти Flash и Javascript.

0 голосов
/ 18 мая 2011

iMacros для Linux позволяет создавать скрипты для Firefox и Chrome: http://wiki.imacros.net/Linux

...