用Python控制浏览器
我想找一种方法,用Python来控制浏览器,也就是填写表单和提交,可能还想调用一些JavaScript函数。我查了一下,发现PyWebKitGtk只能把浏览器显示为一个图形界面元素,而不能和它进行交互。
有没有简单的方法可以做到这一点?我已经用Python写好了我的程序逻辑,不想把它移植到JavaScript上。而且,就算我使用纯JavaScript的“书签小工具”,它们也不能读取或写入我本地的文件系统,对吧?
另外,页面上的一些内容是通过AJAX生成的,所以我希望找到一个解决方案,让JavaScript能够正常运行。
顺便说一下,为了打消你的疑虑,我并不是想自动填写论坛的账号创建表单或其他类似的垃圾内容,虽然这个任务在技术上是类似的。我需要爬取/抓取网站的数据,用于我的研究项目。
补充一下:我觉得IEC看起来不错,但我是在Mac上工作。
3 个回答
1
你可以用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,它会为你提供一个xulrunner(Firefox)的API接口。
1
为什么不直接用Python来模拟一个浏览器,解析HTML并根据需要构建合适的HTTP请求呢?
快速在谷歌上搜索一下,可以找到以下内容:
3
你可以试试 Selenium 这个工具,它可以通过多种编程语言(包括Python)来控制浏览器。这个工具主要是用来测试不同浏览器的表现,但也许能满足你的需求。