内容简介
本部分介绍QtWebKit以及QtWebEngine相关的技术。但是,本文更侧重于QtWebEngine技术,因为在Qt5.6中移除了QtWebKit模块。
另外,本部分的内容更侧重于爬虫,因为这些技术是在写爬虫的时候才学习的(反爬虫技术再牛,也得让用户可以正常访问,不是么?那……我们就做一个正常的用户)。
# QtWebKit and Qt WebEngine
根据官方所述「QtWebKit got deprecated upstream in Qt 5.5 and removed in 5.6」,所以从后面开始,我们整体基于QtWebEngine展开,极少涉及与QtWebKit相关的技术。
# 官方文档
不管是PyQt还是PySide模块,它们的文档都不够详尽。而PySide的文档明显是从Qt的文档里复制过来的。
如果要使用这些API库:「详细描述」还要参考Qt官方文档,但是「函数参数类型」可以参考这些文档。
Qt WebEngine Debugging and Profiling
# PyQt5
PyQt v5.13 Reference Guide / QtWebEngineWidgets
# 使用WebEngine构建应用
import sys from PyQt5.QtCore import * from PyQt5.QtWebEngineWidgets import * from PyQt5.QtWidgets import QApplication app = QApplication(sys.argv) web = QWebEngineView() web.load(QUrl("https://www.example.com")) web.show() sys.exit(app.exec())
附加说明
# Get Html element value with QWebEngine
在QtWebEngine中,如果要获取页面的元素,需要通过QWebEnginePage的runJavaScript方法。
# Missing methods for QWebEnginePage with QWebEngineCallback
在PySide2中,没有toHtml方法。
相关示例
# WebEngine Quick Nano Browser
使用QML语言创建一个浏览器。
# WebEngine Content Manipulation Example
向页面中注入JQuery库,操作页面中的内容。
# WebEngine Markdown Editor Example
使用QWebChannel创建Markdown编辑器。
相关文章
参考文献
Quick Tutorial: PyQt 5 Browser
Python Qt5 - QtWebEngine example.
Cannot import QtWebKitWidgets in PyQt5
New Features in Qt 5.6