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

使用Python Requests爬取SMWS API时遇KeyError: 'data'问题求助

解决SMWS API爬取时的KeyError问题

问题分析

出现KeyError: 'data'是因为API返回的JSON结构里没有data字段,核心原因是你的请求未携带必要请求头(比如User-Agent),被服务器识别为非浏览器请求,返回了错误或验证类内容,而非预期的威士忌数据。

修复后的代码

import requests

# 添加模拟浏览器的请求头,绕过服务器的基础反爬验证
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}

url = "https://api.smws.com/api/v1/bottles?store_id=uk&parent_id=61&page=1&sortBy=pricedesc&minPrice=0&maxPrice=0&perPage=128"
response = requests.get(url, headers=headers)

# 先验证请求是否成功
if response.status_code == 200:
    json_data = response.json()
    # 实际API返回的条目数据在data->items路径下
    if "data" in json_data and "items" in json_data["data"]:
        for item in json_data["data"]["items"]:
            print(item["name"])
    else:
        print("响应结构不符预期,当前响应内容:", json_data)
else:
    print(f"请求失败,状态码:{response.status_code}")

关键注意点

  • 必须携带User-Agent请求头,否则服务器会拒绝返回有效业务数据
  • 目标条目实际嵌套在data字段下的items列表中,需调整索引路径才能获取到name字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:42:56