Без заголовка, сценарий Firefox/Webkit на Linux?
Я ищу автоматизировать некоторые веб-взаимодействия, а именно периодическую загрузку файлов с защищенного веб-сайта. Это в основном включает ввод моего имени пользователя/пароля и переход к соответствующему URL-адресу.
Я пробовал простые скрипты в Python, а затем более сложные скрипты, но только для того, чтобы обнаружить, что этот конкретный сайт использует какой-то неприятный механизм javascript и flash для входа в систему, что делает мои методы бесполезными.
Затем я попробовал HTMLUnit, но, похоже, он тоже не хочет работать. Я подозреваю, что использование Flash - проблема.
Я больше не хочу об этом думать, поэтому я склоняюсь к написанию фактического браузера для входа в систему и захвата файла, который мне нужен.
Требования:
- Запуск на сервере Linux (т.е. без запуска X). Если мне действительно нужно иметь X, я могу это сделать, но я не буду счастлив.
- Будьте надежны. Я хочу начать это и никогда больше не думать об этом.
- Будь сценарием. Ничего слишком сложного, но я должен быть в состоянии рассказать браузеру о различных шагах и страницах, которые нужно посетить.
Есть ли какие-нибудь хорошие инструменты для безголового, X-less скриптового браузера? Вы пробовали что-то подобное, и если у вас есть какие-то слова мудрости?
Ответы
Ответ 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.
Ответ 7
iMacros для Linux позволяет script Firefox и Chrome: http://wiki.imacros.net/Linux