@lookatshow

Переход c PyQt4 на PyQt5, оптимальное решение?

Доброго времени суток, друзья, раньше работал с парсингом страницы через 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ой версии альтернативу.
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы