Встроить веб-браузер в программу Python - PullRequest
7 голосов
/ 29 сентября 2011

Как я могу встроить веб-браузер в программу Python? Он должен работать на Linux (GTK, Qt нормально) или кроссплатформенный.

Я рассмотрел встраивание pywebgtk и виджета Qt's WebKit . Но они, кажется, имеют чуть больше, чем движок рендеринга. В частности, мне нужна поддержка просмотра страниц вперед / назад и с вкладками. Это что-то вроде предварительно упакованного, или я должен реализовать это сам?

wxWebConnect кажется примерно тем, о чем я думал, но у него нет привязок Python.

1 Ответ

4 голосов
/ 29 сентября 2011

http://pypi.python.org/pypi/selenium/2.7.0

Вы можете установить пакет selenium и запустить сервер (тот же компьютер, просто другой процесс), к которому вы подключаетесь с помощью своего кода Python:

java -jar selenium-server-standalone-2.7.0.jar

тогда:

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://www.yahoo.com") # Load page
assert "Yahoo!" in browser.title
elem = browser.find_element_by_name("p") # Find the query box
elem.send_keys("seleniumhq" + Keys.RETURN)
time.sleep(0.2) # Let the page load, will be added to the API
try:
    browser.find_element_by_xpath("//a[contains(@href,'http://seleniumhq.org')]")
except NoSuchElementException:
    assert 0, "can't find seleniumhq"
browser.close()

Вы можете использовать subprocess для запуска сервера внутри вашего кода Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...