Headless браузер под Python для выполнения автоматических инструкций браузером?
Собственно задача состоит в следующем.
Пишется программа, где нужно выполнять определенные действия с сайтом (не парсер):
— авторизация
— заполнение форм
— анализ текста
Требования такие:
— Python API
— не очень большой размер решения
— «тихий режим», сами окна браузера демонстративно открывать не нужно
— (желательно) для сайта это все должно выглядеть так, как будто действия выполняет обычный пользователь (адекватный header, клики вместо передачи готовой формы и т.д.)
— простота написания инструкций
В общем, все это напоминает Web Browser Automation. Но без окон и легковесный.
Пробовал Selenium WebDriver (HtmlUnit), но во первых он тяжелый (30+ метров только jar-ник, который нужно запускать как сервер отдельно, чтобы можно было юзать из питона), во-вторых у него не совсем адекватная работа с js.
Сам Selenium например с firefox webdriver в принципе устраивает, но он не headless, т.е. делает все явно открвая и закрывая окна браузера.
Если можно абстрагироваться от выполнения js — посмотрите grablib.org/
Если нужно js — то проще всего phantomjs (с каспером или без) или zombie.js. Ну или мириться с селениумом.