pawelch
@pawelch
Программист php

PyQt5 использую QWebEngineView как получить html страницы?

Всем добрый день!
Использую PyQt5 в нем как браузер QWebEngineView.
Загружаю страницу - и пытаюсь получить html - но не получается, что я не так делаю.
Вот мой код
import sys
import time
from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtWidgets import QApplication


def callback_function(html):
    print(html)


def on_load_finished():
    web.page().runJavaScript("window.onload = function(){alert(document.documentElement.innerHTML);};", callback_function)


app = QApplication(sys.argv)
web = QWebEngineView()
web.load(QUrl("https://yandex.ru"))
web.show()
web.resize(640, 480)
web.loadFinished.connect(on_load_finished)

sys.exit(app.exec_())


Правильно ли я все делаю?
  • Вопрос задан
  • 713 просмотров
Пригласить эксперта
Ответы на вопрос 1
pawelch
@pawelch Автор вопроса
Программист php
Нашел что мне подходит

import webview
from threading import Thread


def thread_fun():
  while webview.evaluate_js('document.readyState') != "complete":
    # wait for page to load
    time.sleep(0.5)

  # ask for a bounding rect
  bounding_rect = webview.evaluate_js('''
    document.querySelector("img.central-featured-logo").getBoundingClientRect()
  ''');  
  webview.destroy_window()

  print(bounding_rect)


thread = Thread(target=thread_fun)
thread.start()

webview.create_window(title="a title", url="http://wikipedia.org", width=500, height=700)

thread.join()


но теперь ошибка

module 'webview' has no attribute 'evaluate_js'

Кто-нибудь может подсказать в чем дело?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы