Управление Браузером с помощью Python?

Действительно ли возможно управлять веб-браузером как Firefox с помощью Python?

Я хотел бы сделать вещи как

  • запустите браузер
  • сила нажимает на URL
  • сделайте снимки экрана

и т.д.

21
задан demos 30 July 2010 в 06:16
поделиться

5 ответов

Зависит от того, чего вы на самом деле хотите достичь. Если вам нужно сделать что-то автоматическое без вмешательства пользователя, вы можете просто использовать базовый движок браузера, такой как Gecko или WebKit, без загрузки самого браузера. Доступны готовые привязки Python к этим движкам.

Сами браузеры не предоставляют такого рода API для внешних процессов. Для Firefox вам нужно будет внедрить код на стороне браузера в Chrome в виде расширения или плагина.

0
ответ дан 29 November 2019 в 21:17
поделиться

Selenium Remote Control - это проект, очень близкий к тому, что вам нужно. Начать работать на Python очень легко с подпакетом selenium.webdriver , который поставляется вместе с ним. Когда-то это были два проекта. Теперь они объединились.

Установка

Все просто!

$ pip install -U selenium

Использование

>>> from selenium import webdriver
>>> ff = webdriver.Firefox()
>>> ff.get("http://stackoverflow.com/q/3369073/395287")
>>> ff.save_screenshot("/absolute/path/to/webpage.png")

Примечания

Документация по Selenium может немного сбивать с толку, поскольку существует два режима взаимодействия с браузерами. Помимо режима webdriver , есть возможность общаться с «автономным сервером удаленного управления Selenium». Этот подход впервые задокументирован в официальной документации , но я бы остановился на webdriver для простой задачи здесь.

20
ответ дан 29 November 2019 в 21:17
поделиться

Отличный способ управления браузером в Python - использовать PyQt4.QtWebKit .

1
ответ дан 29 November 2019 в 21:17
поделиться

Если вам нужно делать скриншоты, то вам нужно рендерить страницы. Я бы рекомендовал использовать Selenium (как упоминал Тим), или spynner.

Вот пример кода того, что вам нужно, используя spynner:

import spynner

browser = spynner.Browser()
browser.load("http://stackoverflow.com/q/3369073/")
browser.snapshot().save('file.png')
browser.close()
8
ответ дан 29 November 2019 в 21:17
поделиться

wxWebConnect - это библиотека wxWidgets для управления Gecko (движок рендеринга Mozilla). Вместе с wxPython она позволит вам написать собственный (минимальный) веб-браузер на Python и, следовательно, управлять кликами.

3
ответ дан 29 November 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: