使用Python控制浏览器?

使用Python控制浏览器?,python,browser,webbrowser-control,Python,Browser,Webbrowser Control,是否可以使用Python控制像Firefox这样的web浏览器 我想做像这样的事情 启动浏览器 强制单击URL 截图 等等。是一个非常接近你所追求的项目。在Python中使用随附的selenium.webdriver子包非常容易。从前,这是两个项目。他们现在已经统一了 装置 简单 $ pip install -U selenium 用法 笔记 对于Selenium来说,文档可能有点混乱,因为与浏览器交互有两种模式。除了webdriver模式外,还可以与“独立的Selenium远程控制服务器

是否可以使用Python控制像Firefox这样的web浏览器

我想做像这样的事情

  • 启动浏览器
  • 强制单击URL
  • 截图
等等。

是一个非常接近你所追求的项目。在Python中使用随附的
selenium.webdriver
子包非常容易。从前,这是两个项目。他们现在已经统一了

装置 简单

$ pip install -U selenium
用法 笔记
对于Selenium来说,文档可能有点混乱,因为与浏览器交互有两种模式。除了
webdriver
模式外,还可以与“独立的Selenium远程控制服务器”通话。这种方法是第一个在中介绍的,但是对于这里的简单任务,我将坚持使用
webdriver

是一个用于控制Gecko(Mozilla的渲染引擎)的wxWidgets库。与之一起,它将允许您用Python编写自己的(最小的)web浏览器,从而控制单击。

取决于您实际想要实现的目标。如果您需要在不受用户干扰的情况下进行一些自动操作,您可以只使用浏览器的底层引擎,如Gecko或WebKit,而不加载浏览器本身。这些引擎有现成的Python绑定可用


浏览器本身不向外部进程提供这种API。对于Firefox,您需要将一些浏览器端代码作为扩展或插件注入chrome中。

Ag用Python控制浏览器的好方法是使用
PyQt4.QtWebKit

如果需要截图,则需要呈现页面。我建议使用硒(正如Tim所提到的),或者

以下是使用Spyner所需的示例代码:

import spynner

browser = spynner.Browser()
browser.load("http://stackoverflow.com/q/3369073/")
browser.snapshot().save('file.png')
browser.close()

这个问题有点老了,但我看不到任何参考资料,你应该试一试。我使用绑定进行开发,但是喜欢pygtk的程序员应该尝试pywebketgtk(这对我来说更像python)。请注意,虽然Qt绑定更完整(或者至少是我上次检查的时候)。

可能重复:顺便问一下,为什么要这样做?是对基于web的软件进行单元测试吗?或者别的什么目的?我真的很喜欢斯宾纳。与pyquery相结合,它允许我自动化许多web任务。非常感谢Tim。它的安装比spynner的要容易得多
import spynner

browser = spynner.Browser()
browser.load("http://stackoverflow.com/q/3369073/")
browser.snapshot().save('file.png')
browser.close()