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

如何识别Python Requests请求所需元素?Blibli接口调用失败排查

问题分析与解决方法

一、先修正代码里的基础错误

你写的代码里,判断请求是否成功的逻辑错了——不能直接拿resp对象和200比较,得用resp.status_code == 200,否则判断逻辑完全失效。先把这个改了:

import requests

resp = requests.get('https://www.blibli.com/backend/content/promotions/blm-ranch-market')
if resp.status_code == 200:
    print(resp.json())
else:
    print(f"请求失败,状态码:{resp.status_code}")

二、可能缺失的关键请求元素

浏览器能成功但requests调用失败,大概率是你漏了浏览器会自动携带的核心请求头,常见的有这些:

  • User-Agent:服务器靠这个识别请求来源,requests默认的User-Agent很容易被识别为爬虫,必须换成浏览器的真实值。
  • Referer:部分接口会校验请求的来源页面,得带上该接口所在的网站首页或父页面地址。
  • Accept:指定客户端能接收的内容类型,浏览器的Accept头会明确包含application/json,而requests默认的可能不够精准。
  • Cookie:你说带了Cookie但还是失败,要确认是不是完整的有效Cookie——浏览器里的Cookie可能包含会话ID、CSRF令牌等多个字段,漏了任何一个关键字段都可能被拒绝。
  • 自定义请求头:有些网站会加类似X-Requested-With: XMLHttpRequest的头,标记这是AJAX请求,没有的话服务器直接拒绝。

三、精准确定请求所需的必要元素

直接对比浏览器和requests的请求差异是最靠谱的方法,步骤如下:

  1. 用Chrome抓包查看真实请求:
    • 打开Chrome,按F12打开开发者工具,切换到「Network」标签页。
    • 在浏览器里刷新那个接口页面,找到对应的GET请求,点击它查看「Headers」详情。
  2. 复制浏览器的完整请求头:
    • 找到「Request Headers」部分,把所有字段复制下来(注意不要复制Host,requests会自动处理)。
  3. 在requests中完整模拟请求:
    • 把复制的请求头整理成字典,传给requests.get的headers参数,示例代码:
      import requests
      
      headers = {
          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
          'Accept': 'application/json, text/plain, */*',
          'Referer': 'https://www.blibli.com/',
          # 替换成你从浏览器复制的完整Cookie
          'Cookie': 'your_full_valid_cookie_here'
      }
      
      resp = requests.get('https://www.blibli.com/backend/content/promotions/blm-ranch-market', headers=headers)
      if resp.status_code == 200:
          print(resp.json())
      else:
          print(f"请求失败,状态码:{resp.status_code}")
          print(resp.text) # 打印服务器返回的内容,通常能看到具体错误原因
      
  4. 逐步排查必要字段:
    • 如果模拟成功,就逐个删除请求头里的字段,直到请求失败,这时被删除的就是必要元素——这样能精准找出服务器要求的所有关键头。

另外,如果以上方法都不行,注意查看resp.text的内容,服务器一般会返回具体的拒绝原因,比如「缺少必要请求头」「会话过期」等,根据提示再针对性调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:15:39