2024-10-02 12:35:33 发布
网友
我正在尝试为youtube和其他媒体创建一个浮动浏览器。 我发现了一些类似于PyQt4/PySide的adblock的旧示例,但现在它们已被弃用,我无法将它们翻译成pyside2qwebengineview。在
你知道如何在QWebEngineView中插入adblock吗?在
旧版本链接How would you adblock using Python?
要过滤url,必须实现QWebEngineUrlRequestInterceptor,如果要阻止url,则必须调用QWebEngineUrlRequestInfo的block(True)函数。对于筛选,我将使用adblockparser库和easylist.txt。在
from PyQt5 import QtCore, QtWidgets, QtWebEngineCore, QtWebEngineWidgets from adblockparser import AdblockRules with open("easylist.txt") as f: raw_rules = f.readlines() rules = AdblockRules(raw_rules) class WebEngineUrlRequestInterceptor(QtWebEngineCore.QWebEngineUrlRequestInterceptor): def interceptRequest(self, info): url = info.requestUrl().toString() if rules.should_block(url): print("block::::::::::::::::::::::", url) info.block(True) if __name__ == '__main__': import sys app = QtWidgets.QApplication(sys.argv) interceptor = WebEngineUrlRequestInterceptor() QtWebEngineWidgets.QWebEngineProfile.defaultProfile().setRequestInterceptor(interceptor) view = QtWebEngineWidgets.QWebEngineView() view.load(QtCore.QUrl("https://www.youtube.com/")) view.show() sys.exit(app.exec_())
要过滤url,必须实现QWebEngineUrlRequestInterceptor,如果要阻止url,则必须调用QWebEngineUrlRequestInfo的block(True)函数。对于筛选,我将使用adblockparser库和easylist.txt。在
相关问题 更多 >
编程相关推荐