在 Chromium Selenium 和 Python3 中使用自定义过滤器加载 ublock

Pau*_*rke 5 python selenium google-chrome-extension selenium-webdriver

我正在开发一个抓取脚本来收集 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)
Run Code Online (Sandbox Code Playgroud)

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

    chrome_options.add_argument("user-data-dir=/home/user/.config/chromium/Default")
Run Code Online (Sandbox Code Playgroud)

或者

    chrome_options.add_argument("--profile-directory=/home/user/.config/chromium/Default")
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激

D S*_*iro 0

您可以尝试使用 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) 
Run Code Online (Sandbox Code Playgroud)