Я использую Python, PyQt4 и QtWebKit для загрузки веб-страницы в простой браузер для проверки данных.
Однако есть небольшая проблема. Я пытаюсь получить содержимое и источник каждого iframe на загруженной странице. Я использую webView.page (). MainFrame (). ChildFrames () , чтобы получить кадры. Проблема в том, что childFrames () загружает кадры ONLY , если они видны в браузере. Например, когда ваш браузер расположен в верхней части страницы, childFrames () не будет загружать фреймы в нижнем колонтитуле страницы. Есть ли способ или настройка, которую я мог бы настроить, где я могу получить всю рекламу? Я приложил источник моего "браузера". Попробуйте прокрутить страницу вниз, когда страница закончит загрузку. Посмотрите консоль, и вы увидите, что фреймы загружаются динамически. Пожалуйста, помогите.
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_()