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

如何程序化通过Postman获取GET请求头,解决requests爬取站点403问题

403禁止访问问题解决方法

原因说明

目标站点使用Imperva反爬防护体系,简单GET请求缺少合法客户端指纹、请求头参数、有效会话Cookie,因此直接被拦截返回403状态码。Postman请求能成功是因为自带了完整的标准请求头,且首次访问时完成了反爬校验生成了有效Cookie。

稳定解决方案

方案1:补充完整请求头维持会话(最高效)

不需要依赖Postman或者Selenium,直接构造完整合法的请求头,用requests.Session自动维护Cookie更新,不需要手动处理5分钟过期的问题:

import requests

# 从Postman中复制所有请求头参数,不要只复制Cookie
headers = {
    'User-Agent': '你Postman里的UA字符串,完全抄过来',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
    'Accept-Encoding': 'gzip, deflate, br',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1',
    'Sec-Fetch-Dest': 'document',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-Site': 'none',
    'Sec-Fetch-User': '?1'
}

# 用Session维持会话,会自动处理Cookie的更新、过期逻辑
session = requests.Session()
session.headers.update(headers)

# 首次访问首页获取有效Cookie
resp = session.get('https://www.metrocuadrado.com/')
print(resp.status_code) # 正常会返回200

# 后续所有爬取请求都用这个session发送,不需要手动处理Cookie
detail_resp = session.get('你要爬的房产详情页链接')

方案2:修复Selenium获取Cookie无效的问题

Selenium拿到的Cookie无法使用是因为客户端指纹不匹配,按以下步骤调整即可正常使用:

  • 启动Selenium时指定固定User-Agent,和后续requests使用的UA完全一致
  • 访问目标站首页后等待3-5秒,等反爬脚本执行完成生成完整的有效Cookie
  • 不要手动拼接Cookie头,直接将Cookie批量导入requests.Session:
from selenium import webdriver
import requests

# 固定UA
ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
# 启动selenium
options = webdriver.ChromeOptions()
options.add_argument(f'user-agent={ua}')
driver = webdriver.Chrome(options=options)

# 访问首页等待加载
driver.get('https://www.metrocuadrado.com/')
import time
time.sleep(5)

# 导入cookie到session
session = requests.Session()
session.headers.update({'User-Agent': ua})
for cookie in driver.get_cookies():
    session.cookies.set(cookie['name'], cookie['value'])

# 验证可用性
resp = session.get('https://www.metrocuadrado.com/')
print(resp.status_code)

方案3:调用Postman获取Cookie

如果必须通过Postman生成有效Cookie,可以安装postman-cli工具,将你当前的请求导出为Postman集合,通过命令行运行集合后导出响应Cookie,再读取导入到requests会话中即可。

注意事项

爬取时控制请求频率,建议单次请求间隔1-2秒,高频请求会触发IP封禁,爬取大量数据建议搭配代理池使用。

内容的提问来源于stack exchange,提问作者David López

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:45:05