当前位置: 首页 > 知识库问答 >
问题:

Python/Selenium:我如何使用无头Chrome驱动程序来模拟扩展,如uBlock或AdBlock?

姜振濂
2023-03-14

我正在Python中使用Selenium/ChromeDriver。在我的代码中使用ChromeDriver选项:

options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('load-extension=' +uBlockExtensionPATH)
browser = webdriver.Chrome(chrome_options=options)

然而,无头Chrome不支持使用此答案中的扩展。我能够使用我当前的Python脚本获得无头Chrome,并且一切都运行良好,但是由于第三方广告/分析/请求,访问站点需要很长时间。

在我实现无头ChromeDriver之前,我使用了标准的非无头ChromeDriver并导入了uBlock扩展,以消除第三方站点拖慢我的测试。

我不太了解代理或任何网络相关的知识。我知道一个选择是将导致连接缓慢的任何主机列入黑名单,但这些主机是不断变化的,将太多的黑名单每一个单独。

共有1个答案

林亦
2023-03-14

由于在无头模式下不支持扩展,代理服务器似乎是最好的操作方案。

您可以尝试使用https://github.com/epitron/mitm-adblock设置本地代理服务器(用python编写,易于设置),并在启动Chrome时添加--proxy-server=localhost:8118。它支持AdblockPlus easylist,这应该是相当全面的。

您还可以尝试https://github.com/artificial-university/adblock-proxy,它是在node中编写的,但似乎更加成熟,并且最近更新了。

 类似资料:
  • 问题内容: 您好,我尝试使用python使用Selenium安装Chrome扩展程序,我尝试使用ChromeDriver-WebDriver for Chrome 但这不起作用,这是我的代码: 这是我得到的错误: 我尝试用其他3种不同的方式进行此操作,实际上在Stack Overflow中有一个类似的问题,其答案已被弃用,如果再次找到它,我将在此处编写链接。 问题答案: 要使用的python客户端

  • 我在启用Browsec扩展的情况下打开chrome浏览器的所有努力都失败了。这是我最近尝试的-- 这将导致错误“无法从加载扩展名。清单文件丢失或不可读” 搜索此错误后,我得到Manifest.json文件应该重命名为manifest.json.txt但这样做会导致同样的错误。 任何帮助都将不胜感激

  • 本文向大家介绍如何使用Python将选项传递给Selenium Chrome驱动程序?,包括了如何使用Python将选项传递给Selenium Chrome驱动程序?的使用技巧和注意事项,需要的朋友参考一下 我们可以使用Python将选项传递给Selenium Chrome驱动程序。这可以借助ChromeOptions和DesiredCapabilities类的帮助。对于ChromeOptions

  • 我试图运行一个项目在硒与铬驱动程序,但我没有使用它一个月后(是一个更新到铬)。当我运行这个项目时,它会打开浏览器,然后立即关闭。 我收到以下错误: Traceback(最近一次调用最后一次):文件"C:\用户\maorb\OneDrive\Desktop\Maor\python\serethd\tvil_arthur.py",第27行,在驱动程序=webDrive中。Chrome()File"C:

  • 问题内容: 我正在尝试运行一个ruby文件,该文件将使用seleniumwebdriver启动chrome驱动程序。我有selenium独立服务器2.35.0。和chromedriver可执行文件已安装。我正在通过运行服务器来启动 两个会话正在启动,chrome驱动程序无法启动。 这是在我使用以下文件运行文件之后 我对此并不陌生,无法找出问题所在。而且,我也试图让它无头运行,所以我正在运行Xvfb

  • 我试图运行一个ruby文件,这将启动chrome驱动程序使用selenium WebDriver。我有selenium独立服务器2.35.0。和chromedriver可执行文件安装。我通过运行来启动服务器, 这是在我使用 我对此很陌生,不知道哪里出了问题。我也试图无头运行它,所以我有Xvfb运行。有人能帮我指出我犯的错误并启动chromedriver吗? 更新: 谁能帮我弄清楚出了什么问题吗?