我通过执行以下操作将一些html加载到pyqt中:
view = QWebView()
view.setHtml(html)
如果html的脚本或img标签带有" src"指向远程资源,然后请求这些资源。
我想阻止这些请求。
我可以使用beautifulsoup来删除html中的这些标签,但是有没有内置的pyqt方法呢?
答案 0 :(得分:3)
PyQt只是Qt的包装,解决方案是在Qt本身中寻找。
我不是Web小部件的专家,但我知道QWebView
配置了QWebSettings,您可以使用它来禁用javascript和自动加载图像。但是,这并没有解决样式表和其他外部文件的问题。
要阻止任何外部请求,您可以尝试的一种解决方案是使用QNetworkAccessManager。这是该类,它是网页完成的所有网络访问的入口点。您可以在此类的实例上设置property networkAccessible
以“禁用”网络,这将阻止所有网络请求。您当然要在页面加载之前设置该属性。
翻译成代码:
view = QWebView()
netmanager = view.page().networkAccessManager()
netmanager.setNetworkAccessible(QNetworkAccessManager.NotAccessible)
view.setHtml(html)