我正在寻找一种从Python控制浏览器的方法,即填写表单字段并提交它们,可能调用JS函数。我看了一下,但据我所知,PyWebKitGtk只允许你将浏览器显示为GUI元素,而不是与它的接口。
有没有办法轻松完成这项工作? 我用Python编写了程序逻辑,我讨厌把它移植到JS。 除此之外,即使我使用纯JS“bookmarklets”,那些也无法读取/写入我的本地文件系统,是吗?
此外,页面上的一些内容是使用AJAX生成的,所以我正在寻找一个javascript正常运行的解决方案。
P.S。为了平息你的怀疑,我不是试图自动填写论坛帐户创建表格或类似的垃圾邮件,尽管任务在技术上是相似的。我需要为我的研究项目抓取/抓取网站。
编辑:IEC看起来很有前途,但我正在使用Mac。
答案 0 :(得分:3)
您可以尝试类似Selenium这样的应用程序,它是一种通过各种语言(包括Python)来编写脚本浏览器的应用程序 - 它用于跨浏览器测试,但可能会做您想要的。
答案 1 :(得分:1)
为什么不使用Python来模拟浏览器,解析HTML并根据需要构建适当的HTTP请求?
快速google会产生以下结果:
答案 2 :(得分:1)
您可以实现Webkit浏览器(在Python中):
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为xulrunner(Firefox)提供API接口。