使用Python控制浏览器?

dem*_*mos 21 python browser webbrowser-control

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

我想要做的事情

  • 启动浏览器
  • 强制点击网址
  • 截图

等等

Tim*_*ara 20

Selenium Remote Control是一个非常接近你所追求的项目.使用它附带的selenium.webdriver子包很容易在Python中工作.曾几何时,这是两个项目.他们现在已经统一了.

安装

简单!

$ pip install -U selenium
Run Code Online (Sandbox Code Playgroud)

用法

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

笔记

对于Selenium来说,文档可能会有些混乱,因为有两种模式可以与浏览器进行交互.除了webdriver模式,还可以与"独立的Selenium远程控制服务器"通信.这种方法是官方文档中首先记录的内容,但我会坚持webdriver这里的简单任务.


mar*_*bdq 8

如果您需要截屏,那么您需要渲染页面.我建议使用Selenium(如Tim所述),或者spynner.

以下是使用spynner所需内容的示例代码:

import spynner

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