【发布时间】:2017-06-24 10:48:28
【问题描述】:
我在 Python 中使用 Selenium/ChromeDriver。在我的代码中使用 ChromeDriver 选项:
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('load-extension=' +uBlockExtensionPATH)
browser = webdriver.Chrome(chrome_options=options)
但是,headless Chrome 不支持使用扩展程序,如 answer 所述。我能够让无头 Chrome 与我当前的 Python 脚本一起工作,一切正常,但由于第三方广告/分析/请求,访问网站需要很长时间。
在实现无头 ChromeDriver 之前,我使用了标准的非无头 ChromeDriver 并导入了 uBlock 扩展程序,以消除第三方网站减慢我的测试速度。
例如,没有 -headless 选项和 uBlock 扩展完成我的测试大约需要20 秒左右。但是,使用 -headless 选项和没有 uBlock 完成我的测试,我的测试大约需要一分钟才能完成。这违背了我最初减少测试时间的目标,这就是我想使用无头 Chrome 驱动程序的原因。
由于我无法在 headless 模式下导入 Chrome 扩展程序,我该如何阻止第三方广告/分析/请求(又名 uBlock 的目的)?
我对代理或任何与网络相关的东西都不太了解。我知道一个选项是 黑名单 任何导致连接缓慢的主机,但是这些主机不断变化,并且单独将每个主机都列入黑名单太多了。
【问题讨论】:
-
进一步澄清:当您加载网站时,您知道 Chrome 左下角的那些小消息吗?这些基本上是让我慢下来的原因。例如,我会看到:“Performing TLS handshake with:”或“Waiting for amazon.ds.analytics.com”等。uBlock 消除了这些,但显然无头 Chrome 无法进行扩展。
标签: python google-chrome selenium google-chrome-extension