Headless браузер под Python для выполнения автоматических инструкций браузером?

Собственно задача состоит в следующем.

Пишется программа, где нужно выполнять определенные действия с сайтом (не парсер):

— авторизация

— заполнение форм

— анализ текста


Требования такие:

— Python API

— не очень большой размер решения

— «тихий режим», сами окна браузера демонстративно открывать не нужно

— (желательно) для сайта это все должно выглядеть так, как будто действия выполняет обычный пользователь (адекватный header, клики вместо передачи готовой формы и т.д.)

— простота написания инструкций


В общем, все это напоминает Web Browser Automation. Но без окон и легковесный.


Пробовал Selenium WebDriver (HtmlUnit), но во первых он тяжелый (30+ метров только jar-ник, который нужно запускать как сервер отдельно, чтобы можно было юзать из питона), во-вторых у него не совсем адекватная работа с js.

Сам Selenium например с firefox webdriver в принципе устраивает, но он не headless, т.е. делает все явно открвая и закрывая окна браузера.


Заранее спасибо!
  • Вопрос задан
  • 5747 просмотров
Пригласить эксперта
Ответы на вопрос 4
@gelas
Spynner
либо просто QtWebkit
хотя, по-моему, тут и urllib неплохо подходит
Ответ написан
Комментировать
muslimov
@muslimov
— Python API
Это самый критичный пункт требований? Если без него, то у меня есть для Вас серебрянная пуля = casperJs.org
Ответ написан
Комментировать
@pfalcon
Классика эры до Web2.0 — pypi.python.org/pypi/mechanoid/

Ну а в наше страшное время действительно только байндинги для Webkit, вот в качестве демки.
Ответ написан
Комментировать
ajaxtelamonid
@ajaxtelamonid
Laravel
Если можно абстрагироваться от выполнения js — посмотрите grablib.org/
Если нужно js — то проще всего phantomjs (с каспером или без) или zombie.js. Ну или мириться с селениумом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы