繁体   English   中英

阻止在 Selenium 无头 Chrome [python] 上下载图像

[英]Block the download of images on Selenium headless Chrome [python]

以下两个 python 代码阻止在 selenium 非无头 chrome 上下载图像,即在保存的屏幕截图中图像不可见。 如果我们取消注释这两条注释行,代码将不再按预期工作,即图像在无头 chrome 浏览器保存的屏幕截图中可见。 如何正确阻止图像加载到 python 的 selenium 上的无头 chrome 中?

第一种方法

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("prefs", {"profile.default_content_settings.images": 2})
chrome_options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})
# chrome_options.add_argument("--headless")
driver = webdriver.Chrome(options = chrome_options, executable_path = ChromeDriverManager().install())

driver.get('https://www.hdblog.it/page/1/')
driver.save_screenshot('screenshot.png')

第二种方法

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

option = webdriver.ChromeOptions()
chrome_prefs = {}
option.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
chrome_prefs["profile.managed_default_content_settings"] = {"images": 2}
# option.headless = True
driver = webdriver.Chrome(options=option, executable_path = ChromeDriverManager().install())

driver.get('https://www.hdblog.it/page/1/')
driver.save_screenshot('screenshot.png')

无头浏览器不支持首选项

截至 2021 年 2 月

https://bugs.chromium.org/p/chromedriver/issues/detail?id=1925

Headless chrome 不支持首选项设置。 您只能使用命令行 arguments。

支持的 arguments 的完整列表是:

https://peter.sh/experiments/chromium-command-line-switches/

在这里你可以看到 --blink-settings 所以,

尝试

chrome_options.add_arguments('--blink-settings=imagesEnabled=false')

可以在此处访问完整的闪烁设置:

https://chromium.googlesource.com/chromium/blink/+/master/Source/core/frame/Settings.in

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM