Доброго времени суток, друзья, раньше работал с парсингом страницы через PyQt4, а теперь в меру обстоятельств пришлось перейти на PyQt5, да и как бы не обслуживается он давненько:)
Многие фреймворки перевел на QT5, но не могу разобраться с QWebEngineView as QWebView, в частности
doc = view.page().mainFrame().documentElement()
Код:
import sys
from PyQt5.QtNetwork import QNetworkProxyFactory, QNetworkRequest
from PyQt5.QtWebEngineWidgets import QWebEngineView as QWebView, QWebEnginePage
from PyQt5.QtWebKit import QWebSettings
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
if __name__ == '__main__':
app = QApplication(sys.argv)
# Чтобы не было проблем запуска компов с прокси:
QNetworkProxyFactory.setUseSystemConfiguration(True)
QWebSettings.globalSettings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
view = QWebView()
view.page()
view.show()
view.setUrl(QUrl('https://www.myscore.ru/match/lhcHgzkK/#match-summary'))
# Ждем пока прогрузится страница
loop = QEventLoop()
view.loadFinished.connect(loop.quit)
loop.exec_()
doc = view.page().mainFrame().documentElement()
print(doc.findFirst("#statistics-0-statistic a").toPlainText())
print(doc.findFirst("#statistics-1-statistic a").toPlainText())
print(doc.findFirst("#statistics-2-statistic a").toPlainText())
table = doc.findFirst("#tab-statistics-0-statistic .parts")
for tr in table.findAll('tr'):
l, text, r = tr.toPlainText().split('\t')
print(l, text, r)
# sys.exit(app.exec_())
Ошибка:
line 32, in <module>
doc = view.page().mainFrame().documentElement()
AttributeError: 'QWebEnginePage' object has no attribute 'mainFrame'
Не могу найти в мануале 5ой версии альтернативу.