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

POST请求返回Bad JSON,无限滚动网站爬取求助

解决POST请求返回"Bad JSON"的问题

出现Bad JSON错误,核心原因是你发送的POST请求没有携带符合要求的JSON格式请求体,或者请求头配置不正确。按以下步骤排查修复:

  • 第一步:获取正确的请求体
    回到浏览器开发者工具的Network面板,找到目标POST请求,切换到「Payload」(或「Request Body」)标签,复制里面的完整JSON内容。比如可能是类似这样的结构:

    {
      "searches": [
        {
          "collection": "nfts",
          "q": "",
          "sort_by": "rarity_rank:asc",
          "per_page": 24,
          "page": 1
        }
      ]
    }
    
  • 第二步:配置requests请求
    发送请求时,必须把上述JSON作为请求体发送,同时指定正确的请求头(至少包含Content-Type: application/json)。示例代码:

    import requests
    
    url = "https://search2.raritysniper.com/multi_search?use_cache=true&x-typesense-api-key=L1NoMW9ITm1SYWNodFk4cWpmaHphQWZTS2tuaTVFWDNGdmxjT1llcEpLdz1uNWhMeyJmaWx0ZXJfYnkiOiJwdWJsaXNoZWQ6dHJ1ZSJ9"
    
    # 从浏览器复制的请求体
    payload = {
      "searches": [
        {
          "collection": "nfts",
          "q": "",
          "sort_by": "rarity_rank:asc",
          "per_page": 24,
          "page": 1
        }
      ]
    }
    
    headers = {
      "Content-Type": "application/json",
      "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(url, json=payload, headers=headers)
    print(response.json())
    
  • 第三步:处理无限滚动的分页逻辑
    无限滚动加载通常通过page参数控制,后续请求只需要修改payload里的page值(比如从1改成2、3),就能获取下一页数据。

额外注意:

  • 直接调用requests.post(url)相当于发送空请求体,服务器无法解析,因此返回Bad JSON。
  • 部分网站会校验User-Agent,如果不加可能被拦截,建议带上浏览器的UA标识。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:32:41