You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome、ChromeDriver与UA指定版本不一致的影响咨询

问题背景

当前环境与代码配置如下:

  • 本地安装Google Chrome浏览器版本:103.0.5060.53
  • 代码中通过启动参数指定的User-Agent标注Chrome版本:91.0.4472.114
  • 本地调用的chromedriver.exe版本:102.0.5005

相关实现代码:

user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'
options.add_argument(f'user-agent={user_agent}')
driver = webdriver.Chrome(executable_path=r'D:\NCF_GoogleDrive\chromedriver.exe', options=options)
driver.get(paper_url)
doc=BeautifulSoup(driver.page_source,'html.parser')
疑问解答

1. 三者版本不一致是否存在问题?可能引发哪些异常故障?

存在明确的兼容性与风控风险,两类不匹配问题对应的故障如下:

  • Chrome浏览器与ChromeDriver版本不匹配:二者的硬兼容规则是大版本号必须完全对应,103版本Chrome搭配102版本Driver属于不兼容配置,可能出现的故障包括:启动时直接抛出SessionNotCreatedException版本不匹配报错、运行时偶发元素定位超时、JS执行失败、点击/输入等交互动作无响应、渲染过程中driver进程崩溃断连。
  • User-Agent标注版本与实际浏览器版本不匹配:二者相差12个正式大版本,跨度过大,很容易触发站点反爬校验,可能出现的故障包括:站点直接返回403拦截页、验证码校验页、空白无内容页,甚至临时封禁访问IP。

2. 版本不一致是否会导致网页返回的HTML代码发生变化?doc变量存储的页面内容是否会因版本差异出现不同?

会导致HTML内容出现差异,doc存储的解析结果自然也会不同,分两种场景:

  • 浏览器与Driver版本不匹配时,Driver无法正常调用浏览器的渲染接口,可能出现页面JS未执行完成、动态加载内容未挂载到DOM树、页面渲染中途中断的问题,此时driver.page_source拿到的本身就是不完整的残缺DOM,BeautifulSoup解析后的doc内容和正常加载完成的页面存在明显差异。
  • UA版本与实际浏览器版本不匹配时,站点会根据UA标识的浏览器版本做兼容适配:Chrome 91是2021年发布的版本,不支持后续新增的大量JS、CSS特性,站点会给该版本UA返回适配旧内核的降级页面,HTML结构、资源引用、内容渲染逻辑都和适配Chrome 103的新版页面存在区别;如果UA异常触发反爬,返回的拦截页内容和目标页更是完全不同。

3. 该情况是否会对网页爬虫工作造成干扰?待抓取的目标信息对应的标签、类名、id等定位属性是否会因此发生变化?

会对爬虫稳定运行造成明确干扰,定位属性也可能出现匹配失效的问题:

  • 如果触发反爬拦截,拿到的根本不是目标内容页,预先写好的所有标签、类名、id定位规则会全部失效,只能抓到拦截页的无关内容。
  • 如果站点返回旧版兼容页面,DOM结构通常会做适配调整:比如新版 新版页面用<div class="article-content">承载正文,旧版兼容页可能用<div id="main-text" class="content">,预先写的定位规则会直接匹配不到目标节点。
  • 如果是Driver和浏览器不匹配导致的渲染异常,会出现无规律的抓取失败:同样的代码跑多次,可能偶尔能拿到完整内容,多数时候因为动态节点没加载出来抓到空值,爬虫稳定性完全无法保障。

内容的提问来源于stack exchange,提问作者himself

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:18:20