原创

PyQt5 渲染动态网页

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: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)

可参考:

文章最后发布于: 2017-11-27 18:06:25
展开阅读全文
0 个人打赏

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览