一尘不染

Python将Adblock与Selenium和Firefox Webdriver结合使用

selenium

我的目标是通过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剥离的


阅读 323

收藏
2020-06-26

共1个答案

一尘不染

实际上,默认情况下,Adblock Plus将添加EasyList-
但如果您将extensions.adblockplus.currentVersion首选项设置为禁用更新/首次运行操作,则不会添加。我想您的目标是阻止显示第一页,但同时也阻止了数据存储的初始化。请注意,您在这里还有更多问题:即使Adblock
Plus添加了EasyList,下载仍然会花费未知的时间。

更好的做法是使用现有adblockplus/patterns.ini文件初始化您的配置文件。您可以从常规Firefox配置文件中使用EasyList和其他过滤器设置获取此文件,然后将其复制到/Users/username/Downloads/profilemodel/adblockplus/patterns.ini。然后,以下应该工作:

ffprofile = webdriver.FirefoxProfile("/Users/username/Downloads/profilemodel");
2020-06-26