我正在开发一个抓取脚本来收集 authwall 后面的一些数据,我在 ublock 中有一个自定义过滤器,它可以让我通过 authwall 但是当我使用 Selenium 用 ublock 加载 Chrome 时,它没有过滤器。如果有帮助,我正在使用 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")
任何帮助将不胜感激
最佳答案
您可以尝试使用 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)
关于python - 在 Chromium Selenium 和 Python3 中使用自定义过滤器加载 ublock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56837332/