从Python控制浏览器
问题描述:
我正在寻找一种方法来从Python控制浏览器,即填写表单字段并提交它们,可能调用JS函数。我查了一下,但据我所知,PyWebKitGtk只允许您将浏览器显示为GUI元素,而不是与它接口。从Python控制浏览器
有没有办法轻松做到这一点? 我在Python中编写了我的程序逻辑,而且我讨厌将它移植到JS。 除此之外,即使我使用纯JS的“bookmarklets”,那些将无法读/写我的本地文件系统,他们会吗?
此外,页面上的一些内容是使用AJAX生成的,所以我正在寻找一种解决方案,其中javascript正常运行。
P.S.为了平息你的怀疑,我并没有试图自动填写论坛账户创建表或类似的垃圾邮件,虽然这个任务在技术上是相似的。我需要为我的研究项目抓取/刮取网站。
编辑:IEC看起来很有前途,但我在Mac上工作。
答
您可以实现(在Python)一个WebKit浏览器:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl("http://google.com"))
web.show()
sys.exit(app.exec_())
或者选择使用Crowbar会给你一个API接口的xulrunner的(火狐)。
借调。使用Selenium IDE,您可以打开浏览器,按记录,然后自行填写并提交表单。然后,您可以将记录的会话保存到Python代码中。只需将硒代码与您当前的代码集成起来,您就可能是金牌。 – 2010-06-13 21:36:11
这看起来不错。它反过来工作。我会从Selenium调用python,但如果这有效,事情应该没问题。谢谢。编辑:这太棒了!如果那个导出的python脚本能够工作,它会做_exactly_我想要的。 – noio 2010-06-13 21:37:38