سؤال

أنا مبني ببطء متصفح الإنترنت في pyqt4 ومثل السرعة التي أخرج منها. ومع ذلك، أريد أن أجمع بين 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] لقد لاحظت فقط أنني أغير نفسي. prexyip إلى الملكية الفكرية المحلية الفعلية بدلا من 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)

أتمنى أن يساعدك هذا!

نصائح أخرى

هل هذا سؤال حول تصفية الويب؟

ثم حاول استخدام بعض الوكيل الخارجي على الويب، لعينة Privoxy (http://en.wikipedia.org/wiki/privoxy.).

ملف easylist.txt هو ببساطة نص عادي، كما يتضح هنا: http://adblockplus.mozdev.org/easylist/easylist.txt.

خطوط تبدأ مع [وأيضا! يبدو أن تكون تعليقات، لذلك هو مجرد حالة من الفرز من خلال الملف، والبحث عن الأشياء الصحيحة في عنوان URL / طلب بناء على حرف بدء السطر في ملف easylist.txt.

privoxy صلب. إذا كنت تريد أن تكون في واجهة برمجة التطبيقات بالكامل، تحقق من برايتكولود تصفية الويب API كذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top