Frage

ich langsam baue eine Web-Browser in PyQt4 und wie die Geschwindigkeit i bin aus ihm heraus zu bekommen. Allerdings möchte ich mit ihm verbinden easylist.txt. Ich glaube, adblock verwendet diese HTTP-Anfragen durch den Browser zu sperren.

Wie würden Sie darüber gehen mit Python / PyQt4?

[edit1] Ok. Ich glaube, ich Setup Privoxy habe. Ich habe keine Einrichtung keine zusätzlichen Filter und es scheint zu funktionieren. Die PyQt4 habe ich versucht, sieht wie folgt zu verwenden

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)

Dies schließt jedoch absolut nichts und ich kann nicht Sinn der docs machen und kann keine Beispiele finden.

[edit2] Ich habe gerade bemerkt, dass i'f ich self.proxyIP zu meinem eigentlichen lokalen IP ändern, anstatt die Seite 127.0.0.1 nicht geladen. So etwas geschieht.

War es hilfreich?

Lösung

Ich weiß, dass dies eine alte Frage, aber ich dachte, ich würde versuchen, eine Antwort für jeden geben, der darauf stolpern geschieht. Sie könnten eine Unterklasse von QNetworkAccessManager erstellen und kombinieren es mit https://github.com/atereshkin/abpy . Etwas ein bisschen wie folgt aus:

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()

Danach folgende Einstellungen vor auf allen QWebView Instanzen oder eine Unterklasse von QWebView machen:

QWebView.page().setNetworkAccessManager(myNetworkAccessManager)

Hope, das hilft!

Andere Tipps

Ist diese Frage über die Web-Filterung?

Dann versuchen Sie einige der externen Web-Proxy, für die Proben Privoxy verwenden ( http: //en.wikipedia .org / wiki / Privoxy ).

Die easylist.txt Datei ist einfach Klartext, wie hier gezeigt: http: // adblockplus .mozdev.org / Easylist / easylist.txt

Zeilen beginnend mit [und auch! erscheinen Kommentare zu sein, so ist es einfach ein Fall durch die Datei zu sortieren und für die richtigen Dinge in der URL / Anfrage Suche in Abhängigkeit von dem Ausgang Zeichen der Zeile in der easylist.txt Datei.

Privoxy ist solide. Wenn Sie es wollen, obwohl vollständig API sein basierend Besuche die Bright Web-Filtering-API auch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top