Selenium Python无头模式运行时出现CORS跨域问题求助
解决Selenium无头模式下的CORS错误问题
问题根源
无头模式下的Chrome默认配置和正常窗口模式存在差异,网站可能通过这些差异识别出自动化程序,进而限制跨域请求,导致触发CORS报错。
具体解决办法
补充模拟真实浏览器的配置参数
给ChromeOptions添加更多贴近正常浏览器的参数,同时替换已过时的参数名:class Scraper(): def __init__(self): options = Options() options.add_argument("--headless=new") # 新版无头模式,更贴近正常浏览器行为 options.add_argument("window-size=1920,1080") # 替换成你自己正常浏览器的User-Agent,可在chrome://version/页面查看 options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36") # 禁用自动化特征检测 options.add_argument("--disable-blink-features=AutomationControlled") # 解决部分环境下的沙箱权限问题 options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") # 将过时的chrome_options替换为标准的options参数 self.driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)禁用网页安全策略(可选)
如果上述方法无效,可以直接关闭Chrome的跨域安全限制(仅适合爬虫场景):options.add_argument("--disable-web-security") options.add_argument("--allow-running-insecure-content")验证Cookie处理逻辑
无头模式是全新的浏览器会话,要确保代码中点击Cookie同意按钮等操作在无头模式下能正常触发,避免因未接受Cookie导致请求被限制。
内容的提问来源于stack exchange,提问作者Lewis-010
相关产品推荐
相关产品推荐

