質問

私はゆっくりとPyQt4で Webブラウザを構築し、高速Iのようです「それから抜け出すメートル。しかし、私はそれでeasylist.txt組み合わせたいです。私は、adblockのダウンロードは、ブラウザでhttpリクエストをブロックするために、これを使用すると信じています。

どのようにパイソン/ PyQt4を使用して、それについて行くでしょうか?

[EDIT1] [OK]をクリックします。私は私がセットアップ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]私はちょうど私が私の実際のローカルIPにself.proxyIPを変更i'fではなく、ページを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)

この情報がお役に立てば幸い!

他のヒント

Webフィルタリングについてこの質問はありますか?

次に、サンプルPrivoxyは( HTTPのために、外部Webプロキシの一部を使用してみてください。//en.wikipedia .ORG /ウィキ/ Privoxyのに)。

ここに示されたように、

easylist.txtファイルは、単にプレーンテキストです:ます。http:// adblockplus .mozdev.org / easylist / easylist.txtする

[ともで始まる行!コメントのように見えるので、それは単にファイルをソートする場合で、かつeasylist.txtファイル内の行の先頭文字に応じて、URL /要求で正しいものを探します。

Privoxyのは固体です。あなたはそれががベースの完全にAPIになりたい場合は、同様 BrightCloud WebフィルタリングAPI をチェックしてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top