Python将Adblock与Selenium和Firefox Webdriver一起使用

dav*_*upt 11 python selenium firefox-addon adblock

我的目标是通过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)
Run Code Online (Sandbox Code Playgroud)

大部分代码都脱离了http://selenium-python.readthedocs.org/en/latest/faq.html

Wla*_*ant 13

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

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

ffprofile = webdriver.FirefoxProfile("/Users/username/Downloads/profilemodel");
Run Code Online (Sandbox Code Playgroud)