我的目标是通过Python将Adblock Plus与Selenium结合使用。我已经能够将其加载到扩展程序中,但是默认情况下,它不包含默认过滤器“ EasyList”。这是我到目前为止的内容:
from selenium import webdriver from time import sleep ffprofile = webdriver.FirefoxProfile() adblockfile = '/Users/username/Downloads/adblock_plus-2.4-tb+fx+an+sm.xpi' ffprofile.add_extension(adblockfile) ffprofile.set_preference("extensions.adblockplus.currentVersion", "2.4") browser = webdriver.Firefox(ffprofile) while(True): browser.get("www.cnn.com") sleep(5)
大部分代码都是从http://selenium- python.readthedocs.org/en/latest/faq.html剥离的
实际上,默认情况下,Adblock Plus将添加EasyList- 但如果您将extensions.adblockplus.currentVersion首选项设置为禁用更新/首次运行操作,则不会添加。我想您的目标是阻止显示第一页,但同时也阻止了数据存储的初始化。请注意,您在这里还有更多问题:即使Adblock Plus添加了EasyList,下载仍然会花费未知的时间。
extensions.adblockplus.currentVersion
更好的做法是使用现有adblockplus/patterns.ini文件初始化您的配置文件。您可以从常规Firefox配置文件中使用EasyList和其他过滤器设置获取此文件,然后将其复制到/Users/username/Downloads/profilemodel/adblockplus/patterns.ini。然后,以下应该工作:
adblockplus/patterns.ini
/Users/username/Downloads/profilemodel/adblockplus/patterns.ini
ffprofile = webdriver.FirefoxProfile("/Users/username/Downloads/profilemodel");