pyqt - 防止对图像和javascript文件的请求

时间:2014-06-07 12:06:15

标签: python qt pyqt

我通过执行以下操作将一些html加载到pyqt中:

    view = QWebView()
    view.setHtml(html)

如果html的脚本或img标签带有" src"指向远程资源,然后请求这些资源。

我想阻止这些请求。

我可以使用beautifulsoup来删除html中的这些标签,但是有没有内置的pyqt方法呢?

1 个答案:

答案 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)