python--動態網頁渲染pyqt5


原文:https://blog.csdn.net/tymatlab/article/details/78647543

PyQt5 渲染動態網頁

示例代碼:

# -*- coding: UTF-8 -*-
import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineView
import lxml.html

class Render(QWebEngineView):               # 子類Render繼承父類QWebEngineView
    def __init__(self, url):
        self.html = ''
        self.app = QApplication(sys.argv)
        QWebEngineView.__init__(self)       # 子類構造函數繼承父類,這種寫法python2和3通用,還可以是super().__init__()
        self.loadFinished.connect(self._loadFinished)
        self.load(QUrl(url))
        self.app.exec_()

    def _loadFinished(self):
        self.page().toHtml(self.callable)

    def callable(self, data):
        self.html = data
        self.app.quit()


if __name__ == '__main__':
    url = 'http://example.webscraping.com/places/default/dynamic'

    r = Render(url)
    result = r.html

    tree = lxml.html.fromstring(result)
    a = tree.cssselect('#result')[0].text_content()
    print(a)

注意:

1.PyQt版本之間的區別

版本 用法
PyQt4 from PyQt4.QtWebKit import QWebPage, QWebView
PyQt5 from PyQt5.QtWebKitWidgets import QWebPage, QWebView
PyQt5.6+

from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineView

可參考:

 

2.PyQt4中的mainFramePyQt5中已廢棄

版本 用法
PyQt4 html = webview.page().mainFrame().toHtml()
PyQt5 self.page().toHtml(self.callable)

 

可參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM