python - 在 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")
任何帮助将不胜感激
解决方案
您可以尝试使用 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)
推荐阅读
- r - 如何从 R 中的单元格中得出移动总和?
- django - 使用继承类中的字段的 Django 模型约束条件 - 可能吗?
- c++ - 不知道如何将矩阵中的“对角线下”数字更改为负数
- python - 按两列分组,按第三列降序排列 pandas
- css - 如何进行多个顺序转换转换?
- javascript - 使用 Routes 时 React 组件没有更新?
- javascript - 如何使用 Nodejs 读取图像并将其上传到 AWS S3
- flutter - 消费者返回空列表而不是实际数据
- css - 如何在响应时更改内容的顺序?
- javascript - 寻找一种基于按下哪个按钮在模态中显示不同文本的方法