Python requests.get响应与Burp、浏览器结果差异排查
常见问题排查与解决
首先排查代码本身的低级笔误
你在直连版本的代码中存在一处非常容易被忽略的错误:
- 代码前序定义了请求头字典变量
headers(复数形式),但在调用requests.get()时,传参写的是header(单数形式),这会导致所有自定义的请求头完全不会被携带到请求中。 - 这个笔误的直接影响是:服务端收到的请求会使用requests默认的特征(默认User-Agent为
python-requests/版本号,无Referer、X-Requested-With等标识),会直接被前置网关/WAF识别为非浏览器的爬虫流量,触发那个带JS种Cookie的拦截页面。 - 你通过Burp代理运行的代码片段中,传参写的是
headers=headers(和定义的变量名一致),所有自定义请求头正常生效,因此能拿到正确响应——这也是为啥同样的目标地址,走Burp就正常、直连就异常的核心原因。
关于你观察到的行为差异的原理
你收到的拦截页面是非常典型的前置WAF/反向代理的反爬校验逻辑:
- 当WAF识别到请求特征不符合浏览器行为时,不会直接拦截,而是返回一段JS脚本,要求浏览器执行后写入指定的临时校验Cookie,再重新发起请求,只有带了正确临时Cookie的请求才会被放行,返回真正的业务JSON数据。
- Burp能直接拿到正常响应,本质是因为它默认会自动维护所有经过代理请求的Cookie缓存,遇到WAF下发的Cookie会自动存储,后续请求自动携带;且Burp转发请求时会保留你自定义的全部请求头特征,WAF会直接判定为合法流量,不会触发校验流程。
- 你观察到的“直连触发重定向、走Burp不触发重定向”的差异,也是上述逻辑的直接结果:直连时因为请求头缺失,被WAF判定为可疑流量,触发了整套校验流程;走Burp时请求特征合规、Cookie完整,WAF直接放行,自然不会触发重定向。
对应的解决步骤
- 第一时间修正传参的笔误,确保自定义请求头能正常传递,不要因为变量名拼写错误导致请求头丢失。
- 优先使用
requests.Session()会话对象替代独立的get请求,它会自动跨请求维护Cookie,模拟浏览器的行为逻辑:
import requests url = "internal_url" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0", "Accept": "*/*", "Accept-Language": "en-GB,en;q=0.5", "X-Requested-With": "XMLHttpRequest", "Referer": "internal url" } # 初始化会话,自动管理Cookie session = requests.Session() session.headers.update(headers) # 第一次请求会拿到WAF的校验页,会话会自动保存响应中下发的Cookie session.get(url, verify=False) # 第二次请求自动携带校验Cookie,即可拿到正常的业务响应 resp = session.get(url, verify=False) print(resp.text)
- 移除冗余的自定义请求头:
- 不要手动设置
Connection: close,该头会强制每次请求断开TCP连接,是非常明显的爬虫特征,容易被WAF拦截。 - 不需要手动设置
Accept-Encoding: gzip, deflate,requests默认会携带该头并自动完成解压,手动设置反而可能引发解压异常。
- 不要手动设置
- 如果使用Session请求后依然拿到带JS的校验页面,说明WAF的校验Cookie是完全通过前端JS逻辑写入的,requests没有内置JS执行引擎无法自动获取Cookie,这时候可以从Burp的抓包记录中找到浏览器/正常请求携带的校验Cookie值,手动通过
session.cookies.update({"校验Cookie名": "Cookie值"})写入会话,即可完成访问。 - 如果配置公司代理后依然无法正常访问,检查代理地址的书写格式:必须给代理地址加上明确的协议前缀,比如
proxies = {"http": "http://内网代理IP:端口", "https": "http://内网代理IP:端口"},很多人写代理时漏了http://前缀,导致requests把代理地址当目标主机解析,根本无法通过公司网络通道正常出网。
内容的提问来源于stack exchange,提问作者FrozenAra
相关产品推荐
相关产品推荐

