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

Python Requests无法读取Payload数据:API爬取商品数据报错

解决Findify API请求报错的方案

问题根源

你遇到的错误核心原因有两个:

  • 请求体格式不匹配:当前用data参数传递payload,会以表单形式发送,但该API要求JSON格式的请求体
  • 参数有效性问题:硬编码的t_client是过期的毫秒时间戳,user里的uid/sid可能已失效

修复步骤

  1. 切换请求体格式
    把requests.post里的data参数替换为json,requests会自动设置Content-Type: application/json请求头,符合API的接收要求。

  2. 生成有效t_client值
    t_client是客户端当前时间的毫秒级时间戳,用Python实时生成即可,不要用硬编码的旧值。

  3. 获取真实的user参数
    打开目标网站,在浏览器开发者工具的Application面板中,查看localStorage里的findify_user字段,里面的uid和sid是当前有效的会话标识,替换代码里的硬编码内容。

  4. 模拟浏览器请求头(推荐)
    添加User-Agent头,避免被API识别为非浏览器请求,降低拦截概率。

修复后的代码

import requests
import time

if __name__ == "__main__":
    # 从浏览器localStorage获取真实的uid和sid替换下面的值
    valid_user = {
        "uid": "替换为浏览器中的真实uid",
        "sid": "替换为浏览器中的真实sid",
        "persist": True,
        "exist": True
    }
    
    payload = {
        "user": valid_user,
        "t_client": int(time.time() * 1000),  # 实时生成当前毫秒时间戳
        "key": "463dcab6-6df4-4293-969b-745f5f81e10d",
        "limit": 24,
        "offset": 24,
        "filters": [],
        "q": ""
    }
    
    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"
    }
    
    response = requests.post(
        "https://api.findify.io/v4/463dcab6-6df4-4293-969b-745f5f81e10d/search",
        json=payload,
        headers=headers
    )
    print(response.text)

额外提示

  • uid和sid是Findify用于用户会话识别的参数,过期或无效会导致请求失败,需要定期从浏览器获取最新值。
  • 如果仍有报错,对比浏览器中真实请求的Headers,补充代码中缺失的必要请求头(比如Referer)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:36:14