首页 > 解决方案 > 在 Chromium Selenium 和 Python3 中使用自定义过滤器加载 ublock

问题描述

我正在开发一个抓取脚本来收集一些位于 authwall 后面的数据,我在 ublock 中有一个自定义过滤器,它可以让我通过 authwall,但是当我使用 Selenium 用 ublock 加载 chromium 时,它没有过滤器。如果有帮助,我正在使用 Linux。

在获取信息以允许我检查过滤器到位之前,我尝试让它暂停,它是空白的。

这是代码的一部分

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options


    chrome_option_settings = Options()
    chrome_option_settings.add_argument('--window-size=1920x1080')
    extension_path = r'/home/user/.config/chromium/Default/Extensions/cjpalhdlnbpafiamejdnhcphjbkeiagm/1.20.0_0'
    chrome_option_settings.add_argument('load-extension='+extension_path)


    chrome_driver = "/usr/bin/chromedriver"
    driver = webdriver.Chrome(chrome_options=chrome_option_settings, executable_path=chrome_driver)
    driver.get(url)

我也尝试使用任何一种方法加载 Chrome 配置文件,但都没有帮助。

    chrome_options.add_argument("user-data-dir=/home/user/.config/chromium/Default")

或者

    chrome_options.add_argument("--profile-directory=/home/user/.config/chromium/Default")

任何帮助将不胜感激

标签: pythonseleniumselenium-webdrivergoogle-chrome-extension

解决方案


您可以尝试使用 Options() 并使用 ublock 的路径调用 add_extension,希望这会有所帮助

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
executable_path = "path_to_webdriver"
extension_path = r'/home/user/.config/chromium/Default/Extensions/cjpalhdlnbpafiamejdnhcphjbkeiagm/1.20.0_0'

chrome_options.add_extension(extension_path)

driver = webdriver.Chrome(executable_path=executable_path, chrome_options=chrome_options) 

推荐阅读