PyQT4表单提交响应

时间:2016-02-13 13:41:57

标签: python forms submit pyqt4 response

我正在尝试使用PyQT4制作网络剪贴簿。我正试图刮一张公用电话簿(黄页)。我已经有一些使用“请求”库的经验,但在这种情况下,我无法使用它,因为我需要发送请求的页面有一个随机生成的字符串。另外我应该提到它不是一个经典形式,实际上网站上的javaScript函数接受表单字段中的用户输入,并以链接的形式将它们全部添加在一起。最后,它添加随机生成的字符串,并将其重定向到该页面。这就是为什么我使用PyQT4。我的想法是使用PyQT4来操纵DOM元素。我对PyQT4完全不熟悉,但我成功完成了第一部分。我成功填写输入字段并按下按钮,但我不知道如何从响应页面获取内容。我的想法是以某种方式获取响应页面的当前URL,然后在页面仍然加载时在其中找到我需要的内容,因为一旦它重新加载链接就变为死(因为随机生成的字符串)。我很抱歉写这么多,但我试着具体说明这个问题。我也很抱歉我的英语,这不是我的母语。我正在使用Python 3.4,如果那是相关的。这是代码:

from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
from PyQt4 import QtCore, QtGui, QtWebKit
import sys
import os

x = 0

def executeJs():
    global web
    web.page().mainFrame().evaluateJavaScript("document.getElementById('Mesto').value='Ruma';")
    web.page().mainFrame().evaluateJavaScript("document.getElementById('Ulica').value='marka pericina kamenjara';")
    web.page().mainFrame().evaluateJavaScript("document.getElementById('Broj').value='8';")
    web.page().mainFrame().evaluateJavaScript("document.getElementById('btn_trazi').click()")

    print ("js executed\n")

def onDone():
    global x
if x == 0:
    x = 1
    executeJs()

app = QApplication(sys.argv)

web = QWebView()
web.load(QUrl("http://www.11811.rs/BeleStrane/Index"))
web.loadFinished.connect(onDone)


web.show()
app.exec_()

0 个答案:

没有答案