在 Python 程序中嵌入 Web 浏览器

发布于 2024-12-07 05:47:51 字数 361 浏览 0 评论 0原文

如何在 Python 程序中嵌入 Web 浏览器?它需要运行在Linux上(GTK、Qt都可以),或者跨平台。

我研究过嵌入 pywebgtk 和 Qt 的 WebKit 小部件。但这些似乎只不过是一个渲染引擎。特别是,我希望支持后退/前进和选项卡式浏览。类似的东西是预先打包好的,还是我必须自己实现?

wxWebConnect 似乎大致是我的想法,但它没有 Python 绑定。

How can I embed a web browser in a Python program? It needs to run on Linux (GTK, Qt are fine), or cross-platform.

I have looked at embedding pywebgtk and Qt's WebKit widget. But these seem to have little more than a rendering engine. In particular, I'd like support for back/forward and tabbed browsing. Is something like this pre-packaged, or do I have to implement it myself?

wxWebConnect seems to be roughly what I was thinking of, but it has no Python bindings.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

手长情犹 2024-12-14 05:47:51

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 中启动服务器代码。

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

You can install the selenium package and run a server (same machine, just a different process) with it which you connect to with your python code:

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

then:

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()

You could use subprocess to start the server inside your python code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文