python拦截广告弹窗_你会如何使用Python进行广告拦截?

我正慢慢地在PyQt4中构建一个web browser,就像我正在摆脱它的速度一样.但是,我想将easylist.txt与它结合起来.我相信adblock使用它来阻止浏览器的http请求.

你会如何使用python / PyQt4进行操作?

[edit1]好的.我想我已经设置了Privoxy.我没有设置任何额外的过滤器,它似乎工作. PyQt4我尝试使用这样的样子

self.proxyIP = "127.0.0.1"

self.proxyPORT= 8118

proxy = QNetworkProxy()

proxy.setType(QNetworkProxy.HttpProxy)

proxy.setHostName(self.proxyIP)

proxy.setPort(self.proxyPORT)

QNetworkProxy.setApplicationProxy(proxy)

但是,这绝对没有什么,我无法理解文档,也找不到任何例子.

[edit2]我刚刚注意到,如果我将self.proxyIP更改为我的实际本地IP而不是127.0.0.1,则页面无法加载.所以有些事情正在发生.

解决方法:

我知道这是一个老问题,但我想我会尝试给碰巧碰到它的人找一个答案.你可以创建一个QNetworkAccessManager的子类并将它与https://github.com/atereshkin/abpy结合起来.有点像这样:

from PyQt4.QtNetwork import QNetworkAccessManager

from abpy import Filter

adblockFilter = Filter(file("easylist.txt"))

class MyNetworkAccessManager(QNetworkAccessManager):

def createRequest(self, op, request, device=None):

url = request.url().toString()

doFilter = adblockFilter.match(url)

if doFilter:

return QNetworkAccessManager.createRequest(self, self.GetOperation, QNetworkRequest(QUrl()))

else:

QNetworkAccessManager.createRequest(self, op, request, device)

myNetworkAccessManager = MyNetworkAccessManager()

之后,在所有QWebView实例上设置以下内容,或者创建QWebView的子类:

QWebView.page().setNetworkAccessManager(myNetworkAccessManager)

希望这可以帮助!

标签:python,pyqt,pyqt4,adblock

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值