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

为何浏览器与Python Requests请求同一API返回JSON结果不一致?

解决jendela360 API返回空data数组问题

我尝试爬取网站https://jendela360.com/apartemen/jakarta-barat,找到了提供JSON数据的API接口:
https://api.jendela360.com/api/site/apartment-search?price=0&sort=popular&page=1&aptId=&radius=5&latitude=0&longitude=0&filter_type=area&area=jakarta-barat&rowsPerPage=100

在浏览器中打开该API能看到完整的JSON结果,但运行以下Python Requests代码时,返回状态码200却得到空的data数组(data=[]),需要协助解决:

header={
    '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': 'id-ID,id;q=0.9',
    'cache-control': 'max-age=0',
    'cookie': '_ga=GA1.2.23833481.1667102529; _gid=GA1.2.3408225.1667102529; _fbp=fb.1.1667102531924.49727250',
    'sec-ch-ua': '"Chromium";v="106", "Google Chrome";v="106", "Not;A=Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
    }

location='jakarta-barat'
resp = requests.get(f'https://api.jendela360.com/api/site/apartment-search?price=0&sort=popular&page=1&aptId=&radius=5&latitude=0&longitude=0&filter_type=area&area={location}&rowsPerPage=12',headers=header)
x=resp.json()['data']
print(x)

问题原因及解决方法

  • Cookie失效:代码里的Cookie是旧的,服务器验证不通过就返回空数据。解决:打开浏览器开发者工具(F12),切换到Network标签,刷新API页面,找到对应的请求,复制Request Headers里的Cookie字段替换代码中的值。
  • 请求头不匹配:当前请求头是页面导航类型(比如sec-fetch-dest: document),但API需要的是接口请求头。简化请求头,保留必要字段即可,比如User-Agent、Accept(改为application/json更贴合API需求)、有效Cookie。
  • 参数差异:浏览器用的是rowsPerPage=100,代码里是rowsPerPage=12,虽然一般不会导致空数据,但建议保持参数一致排查问题。

修改后的示例代码

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',
    'Accept': 'application/json, text/plain, */*',
    # 替换为浏览器中复制的有效Cookie
    'Cookie': '这里填入你的有效Cookie'
}

location = 'jakarta-barat'
url = f'https://api.jendela360.com/api/site/apartment-search?price=0&sort=popular&page=1&aptId=&radius=5&latitude=0&longitude=0&filter_type=area&area={location}&rowsPerPage=100'
resp = requests.get(url, headers=headers)
data = resp.json()['data']
print(data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:50:25