ChromeDriver突发第三方Cookie拦截警告:能否忽略及如何抑制?
问题描述
我有一段Python爬虫代码:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from flask import Flask, render_template from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service APP = Flask(__name__) @APP.route('/ohc_search_link') def ohc_search_link(): ohc_search() return render_template("finished.html") def ohc_search(): chrome_options = Options() chrome_options.add_argument("--headless") chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument("--no-sandbox") driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=chrome_options) driver.get('https://docs.oracle.com/') # More scraping code here ... driver.close() if __name__ == '__main__': #start OHC search APP.run()
运行脚本时控制台出现如下警告:
[0203/171925.768:INFO:CONSOLE(0)] "Third-party cookie will be blocked. Learn more in the Issues tab.", source: https://docs.oracle.com/search/?q=recruiting&pg=1&size=10&showfirstpage=true&lang=en
当前脚本运行正常且能得到预期结果,想请教:
- 能否忽略该警告?若可以,有没有抑制它的方法?
- 这个警告是近期Chrome更新后才出现的,是否和第三方Cookie限制的相关政策有关?
- 为什么爬取的网站上没有看到Eye图标?
解答
1. 可以忽略,也能抑制警告
既然脚本运行正常、结果符合预期,这个警告只是Chrome的日志提示,完全不会影响爬虫功能,直接忽略就行。
如果想让控制台不再显示这个警告,可以通过修改Chrome的日志配置实现:
在初始化ChromeOptions时添加日志过滤参数,屏蔽INFO级别的日志,只保留ERROR级别的输出。修改后的代码片段如下:
def ohc_search(): chrome_options = Options() chrome_options.add_argument("--headless") chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument("--no-sandbox") # 方式1:禁用Chrome日志输出开关 chrome_options.add_experimental_option('excludeSwitches', ['enable-logging']) # 方式2:设置日志级别为ERROR(3对应ERROR) chrome_options.add_argument('--log-level=3') driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=chrome_options) driver.get('https://docs.oracle.com/') # More scraping code here ... driver.close()
两种方式都能有效屏蔽第三方Cookie的警告日志,选其中一种即可。
2. 确实和第三方Cookie限制政策相关
这个警告正是Chrome推进第三方Cookie禁用政策导致的。2024年起Chrome逐步落实全面禁用第三方Cookie的规则,你的浏览器更新后启用了相关检测机制,当目标网站尝试设置第三方Cookie时,就会触发这个控制台警告。
3. 看不到Eye图标的原因
Eye图标是Chrome在正常交互模式下用来提示Cookie设置的UI元素,但你的脚本用了--headless无头模式运行Chrome——这种模式下浏览器不会渲染界面UI,包括Cookie提示的Eye图标,所以你看不到。另外,部分网站会针对无头浏览器做适配,主动隐藏这类UI元素,也会导致图标不显示。
内容的提问来源于stack exchange,提问作者Srinivas V
相关产品推荐
相关产品推荐

