0
我正在使用Python,PyQt4和QtWebKit將網頁加載到裸機瀏覽器中以檢查數據。PyQt QWebKit框架錯誤?
但是,有一個小問題。我試圖獲取加載頁面上每個iframe的內容和src。我正在使用webView.page().mainFrame()。childFrames()來獲取幀。要解決問題的是,childFrame()只有在瀏覽器可見時才加載框架僅限於。例如,當您的瀏覽器位於頁面頂部時,childFrame()將不會加載iframe位於頁面的頁腳處。有什麼方法或設置可以調整我可以在哪裏獲得所有廣告?我附上了我的「瀏覽器」的來源。嘗試向下滾動時頁面完成加載。觀看控制檯,你會看到iframes動態加載。請幫忙。
from PyQt4 import QtGui, QtCore, QtWebKit
import sys
import unicodedata
class Sp():
def Main(self):
self.webView = QtWebKit.QWebView()
self.webView.load(QtCore.QUrl("http://www.msnbc.msn.com/id/41197838/ns/us_news-environment/"))
self.webView.show()
QtCore.QObject.connect(self.webView,QtCore.SIGNAL("loadFinished(bool)"),self.Load)
def Load(self):
frame = self.webView.page().mainFrame()
children = frame.childFrames()
fT = []
for x in children:
print "=========================================="
print unicodedata.normalize('NFKD', unicode(x.url().toString())).encode('ascii','ignore')
print "=========================================="
fT.append([unicode(x.url().toString()),unicode(x.toHtml()),[]])
for x in range(len(fT)):
f = children[x]
tl = []
for fx in f.childFrames():
print "___________________________________________"
print unicodedata.normalize('NFKD', unicode(fx.url().toString())).encode('ascii','ignore')
print "___________________________________________"
tl.append([unicode(fx.url().toString()),unicode(fx.toHtml()),[]])
fT[x][2] = tl
app = QtGui.QApplication(sys.argv)
s = Sp()
s.Main()
app.exec_()
目的是什麼?爲什麼不能通過解析HTML來完成,而不是要求WebKit的結構? – Apalala 2011-01-22 17:26:24
QWebKit能夠解析JavaScript。普通的HTML解析將**不會**做到這一點。 – enderskill 2011-08-22 02:50:24