Подтвердить что ты не робот

Без заголовка, сценарий Firefox/Webkit на Linux?

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

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

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

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

Требования:

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

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

4b9b3361

Ответ 1

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

Вы можете использовать Crowbar. Это безголовая версия firefox (движок Gecko). Он превращает браузер в сервер RESTful, который может принимать запросы ( "выборка url" ). Таким образом, он анализирует html, представляет его как DOM, ждет определенную задержку для всех выполняемых script.

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

Ответ 2

Как насчет phantomjs?

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

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

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