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

使用Python爬取ticketweb网站遇506 Invalid Request错误求助

解决爬取ticketweb时506 Invalid Request错误的方法

你遇到的506错误是被目标站的Varnish缓存服务器拦截了——浏览器能正常访问是因为请求头更完整,还携带了会话Cookie,而你的Python请求头过于简略,被识别为非浏览器请求。

核心问题拆解

  • Accept-Encoding设置错误:这个字段是告诉服务器支持的压缩格式,浏览器不会用utf-8,正确格式应该是gzip, deflate, br这类
  • 请求头缺失关键字段:比如Accept-Language、Referer、Connection等常规浏览器请求字段,缺失后容易被反爬机制识别
  • 未携带会话Cookie:部分网站会验证会话Cookie,无Cookie的请求会直接被拒绝

修正后的脚本示例

import requests

# 用Session维持会话,自动处理Cookie
session = requests.Session()

url = 'https://www.ticketweb.com/search?q='

# 模拟完整的浏览器请求头(直接从开发者工具复制真实请求头会更准确)
HEADERS = {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "zh-CN,zh;q=0.9",
    "Connection": "keep-alive",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
    "Referer": "https://www.ticketweb.com/",
    "Upgrade-Insecure-Requests": "1"
}

# 先请求首页获取Cookie,再发起搜索页请求
session.get('https://www.ticketweb.com/', headers=HEADERS)
response = session.get(url, headers=HEADERS)

print(response.status_code)
print(response.text)

额外注意事项

  • 直接复制浏览器真实请求头:按F12打开网络面板,刷新页面找到搜索页请求,复制完整的Request Headers,能最大程度模拟浏览器行为
  • 控制请求频率:短时间大量请求会触发更严格的反爬,可能导致IP被封禁
  • 若仍失败,可手动添加Cookie:从浏览器Cookie中复制会话ID等关键值,放到请求头的Cookie字段里

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:50:28