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

Python爬虫打印请求响应头 排查访问超时被拦截问题

核心概念区分

首先明确requests.get()和requests.head()的差异:

  • requests.get():发送标准HTTP GET请求,会向服务端请求目标URL的完整响应内容(包含网页HTML正文等),是普通用户访问网页最常用的请求方法,站点对GET请求的反爬规则通常最严格,你当前运行这行代码直接报连接超时,说明请求已经被目标站点拦截,防火墙直接丢弃了连接请求,没有返回任何响应。
  • requests.head():发送HTTP HEAD请求,按照HTTP协议规范,服务端仅返回响应头,不返回响应正文,资源开销更小。注意部分站点会直接屏蔽HEAD请求,或者返回的响应头和正常GET请求的结果存在差异,无法完全等价于真实爬虫访问时的返回结果。
完整打印请求头与响应头的实现方法

requests库会在请求发送前自动生成默认请求头(最典型的是默认User-Agent值为python-requests/版本号,是非常明显的爬虫特征),你不需要等待请求完全成功,在请求构建阶段就能拿到待发送的完整请求头;请求成功返回后,可以直接从响应对象中提取实际发送的请求头和服务端返回的响应头。
可直接运行的参考代码:

import requests

url = "https://www.truttikon.ch/publikationen"
# 替换为你爬虫实际使用的所有请求参数,包括headers、cookies、proxies等,才能打印真实的请求痕迹
custom_headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
}

try:
    resp = requests.get(url, headers=custom_headers, timeout=20)
    print("=== 实际发送的完整请求头 ===")
    for header_key, header_value in resp.request.headers.items():
        print(f"{header_key}: {header_value}")
    
    print("\n=== 服务端返回的完整响应头 ===")
    for header_key, header_value in resp.headers.items():
        print(f"{header_key}: {header_value}")
except Exception as err:
    # 请求超时/被拦截时,依然可以打印本地构建的待发送请求头
    print("请求异常,打印待发送的请求头:")
    prepped_req = requests.Request("GET", url, headers=custom_headers).prepare()
    for header_key, header_value in prepped_req.headers.items():
        print(f"{header_key}: {header_value}")
    print(f"\n异常详情:{err}")
访问拦截原因与可被识别的访问痕迹说明

目标站点能拿到的访问痕迹不止请求头,常见可识别的爬虫特征包括:

  • 默认请求头特征:未自定义User-Agent时,requests自带的python-requests标识会被绝大多数反爬规则直接拦截
  • 源IP特征:AWS Lambda的出口IP段属于公开的云厂商IDC段,大量站点会直接将这类IP列入高风险爬虫名单,加上你每小时固定频率请求,很容易触发频率拦截规则
  • 连接特征:requests库默认的TLS握手指纹、HTTP协议支持特征和正常桌面浏览器存在差异,高防护等级的站点会直接识别这类特征拦截请求
  • 你当前遇到的连接超时,基本可以判定是目标站点防火墙直接丢弃了你的请求包,并非站点服务不可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:27:24