我正试着用PyQT4做一个网络刮削器。我正试图刮一个公用电话簿(黄页)。我已经有一些使用“requests”库的经验,但是在这种情况下,我不能使用它,因为我需要向其发送请求的页面在最后生成了一个随机字符串。我还应该提到的是,它不是一个经典的表单,实际上网站上的javaScript函数接受用户在表单字段中输入的任何内容,并以链接的形式将其添加到一起。最后,它添加随机生成的字符串,并将您重定向到该页。这就是我使用PyQT4的原因。我的想法是使用PyQT4来操作DOM元素。我对PyQT4完全陌生,但我成功地完成了第一部分。我成功地填充了输入字段并按下了按钮,但我不知道如何从响应页面获取内容。我的想法是以某种方式获取响应页面的当前URL,然后在页面仍然加载时在其中找到我需要的内容,因为一旦它重新加载,链接就会失效(因为随机生成的字符串)。我很抱歉写了这么多,但我尽量把问题说得具体一点。我也很抱歉我的英语,它不是我的母语。我使用的是python3.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_()
目前没有回答
相关问题 更多 >
编程相关推荐