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

Selenium Chrome无头模式爬虫返回403错误如何解决?

问题解答

是否需要添加等待时间

是,这是优先级最高的调整方案。你当前的代码没有任何请求间隔,短时间内连续发起高频访问,会直接触发网站的反爬速率限制,你目前能正常访问20-30个链接才返回403,刚好对应网站针对单IP/单会话的访问频率阈值。
建议添加随机时长的等待间隔,不要用固定间隔,固定间隔反而更容易被反爬规则识别,示例代码如下:

import time
import random

# 在每次driver.get之后添加
time.sleep(random.uniform(1, 2))

# 在每次requests.get之前添加
time.sleep(random.uniform(0.5, 2))

其他可行解决方案

  • 取消Selenium和requests的重复请求逻辑:你当前代码先用Selenium访问了一次事件详情页,又用requests单独发起了一次GET请求,等于同一个URL短时间内发起了两次请求,且requests请求没有携带Selenium会话里的Cookie、指纹等信息,反而更容易被拦截。你可以直接通过Selenium提取页面数据,无需额外发requests请求;如果必须使用requests,要先把Selenium当前会话的所有Cookie提取出来,添加到requests的请求参数中,保持会话一致性。
  • 完善requests请求头:你当前只配置了User-Agent字段,多数网站还会校验Referer、Accept、Accept-Language、Accept-Encoding等头字段,你可以打开浏览器开发者工具,复制正常访问目标网站时的完整请求头,全部填充到headers参数中。
  • 替换自动化驱动:用undetected-chromedriver替换原生的chromedriver,这个库针对Selenium的自动化特征做了专门隐藏,能绕过大部分网站的自动化检测,不需要你手动配置大量的实验性选项。
  • 配置代理IP池:如果调整间隔和请求头后仍然触发403,说明网站针对单IP做了访问频率限制,你可以接入代理IP池,每请求10-15个链接就切换一次IP,突破单IP访问阈值。
  • 调整批量请求策略:每请求20个链接就主动暂停3-5分钟,进一步降低访问行为的机器特征,避免被网站风控系统标记。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:18:02