如何使用GUI在python中以编程方式运行POST请求?(spynner,webkit ...)

Gil*_*not 6 python user-interface screen-scraping webkit spynner

我有一个网站,上面有我需要抓取的表单.我想要一些不支持请求的URL的键/值,而不是填写表单.flashPOSTGET

我使用spynner与网站进行交互,并且spynner可以拥有GUI,但我在google,stackoverflow,spynner github和spynner模块中搜索都不成功.

如果spynner不能做一个POST请求,也许gtkqt+ webkit能做到这一点?任何真实的代码示例都将非常感激.

Nik*_* B. 5

你可以用Spynner这样做:

import spynner
from PyQt4.QtCore import QUrl
from PyQt4.QtNetwork import QNetworkRequest, QNetworkAccessManager

url = "http://localhost:8080/niklas/test.php"
data = "foo=bar"
headers = { "Content-Type": "application/x-www-form-urlencoded" }

req = QNetworkRequest(QUrl(url))
for k, v in headers.items():
    req.setRawHeader(k, v)

browser = spynner.Browser()
browser.webframe.load(req, QNetworkAccessManager.PostOperation, data)
browser._wait_load()

print browser.html
Run Code Online (Sandbox Code Playgroud)

  • 如果我们想在同一个脚本中再次"POST",那么语法是什么?如果我再次尝试运行`browser.webframe.load()`,我会收到以下错误:"QNetworkReplyImplPrivate :: error:内部问题,此方法只能调用一次." (2认同)