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



以下两个python代码阻止在selenium non-headless chrome上下载图像,即在保存的截图中图像不可见。如果我们取消这两行注释,代码就不会像预期的那样工作了,也就是说,在无头chrome浏览器保存的屏幕截图中可以看到图像。如何正确地阻止图像加载在无头铬硒为python?

第一个方法

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不支持首选项设置。您只能使用命令行参数。

支持的完整参数列表如下:

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

这里你可以看到——blink-settings so,

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

完整的闪烁设置可以在这里访问:

https://chromium.googlesource.com/chromium/blink/+/主/源/核心/框架/Settings.in

最新更新