你想通过 Python 快速实现京东商品详情 API 的调用,完成商品信息抓取,我会基于京东开放平台的合规 API(或新手友好的第三方 API),提供「零基础可落地、代码极简、步骤清晰」的入门方案,涵盖从 API 准备到数据解析的全流程,避开京东 API 的核心入门坑点。
一、核心前提(入门必看)
- API 选择 :
- 新手推荐:第三方开放平台 API(如聚合数据、易源数据),无需企业资质,免费试用,上手快;
- 合规进阶:京东开放平台 API(需企业资质、申请应用、签约接口),适合生产环境;
- 核心流程 :
API密钥申请 → 构造请求参数 → 发送HTTP请求 → 解析JSON响应 → 提取商品数据; - 必备库 :
requests(发送 HTTP 请求)、json(解析 JSON 数据),均为 Python 内置 / 主流库,新手易掌握。
二、前置准备
1. 安装依赖库
仅需安装requests(Python3.6 + 自带,若缺失则执行以下命令):
bash
运行
pip install requests
2. 获取第三方京东商品详情 API 密钥
以「聚合数据」为例(新手首选,免费试用):
- 关注博主,搜索「京东商品详情」;
- 免费领取 API 接口,完成实名认证,获取
AppKey(核心调用密钥); - 查看接口文档,确认核心信息:
- 请求地址:
https://v.juhe.cn/jd/item/detail; - 请求方式:GET;
- 必填参数:
key(AppKey)、sku_id(京东商品 ID,从商品 URL 提取,如https://item.jd.com/100060195820.html中的100060195820); - 响应格式:JSON,包含商品标题、价格、库存、销量等核心字段。
- 请求地址:
三、完整入门代码(可直接运行)
python
运行
import requests
import json
# ===================== 配置信息(替换为你的信息) =====================
APP_KEY = "你的聚合数据AppKey" # 替换为自己的AppKey
SKU_ID = "100060195820" # 京东商品ID(可替换为任意商品ID)
API_URL = "https://v.juhe.cn/jd/item/detail"
# ====================================================================
def get_jd_item_detail():
"""抓取京东商品详情核心信息"""
# 1. 构造请求参数
params = {
"key": APP_KEY,
"sku_id": SKU_ID
}
# 2. 构造请求头(模拟浏览器,避免被拦截)
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
try:
# 3. 发送GET请求(超时时间5秒,避免卡顿)
response = requests.get(API_URL, params=params, headers=headers, timeout=5)
# 4. 检查请求状态(200表示成功)
if response.status_code == 200:
# 5. 解析JSON响应
result = response.json()
# 6. 判断API调用是否成功(聚合数据:error_code=0为成功)
if result["error_code"] == 0:
# 7. 提取核心商品信息(逐层解析JSON)
item_data = result["result"]
detail = {
"商品ID": item_data["sku_id"],
"商品标题": item_data["title"],
"商品价格": f"{item_data['price']}元",
"库存状态": item_data["stock_state"],
"店铺名称": item_data["shop_name"],
"商品主图": item_data["pic_url"],
"销量": item_data.get("sales", "暂无数据") # 部分商品无销量,用get避免KeyError
}
# 8. 打印结果(格式化输出,更清晰)
print("=== 京东商品详情 ===")
for key, value in detail.items():
print(f"{key}:{value}")
# 可选:将数据保存为JSON文件
with open("jd_item_detail.json", "w", encoding="utf-8") as f:
json.dump(detail, f, ensure_ascii=False, indent=4)
print("\n商品数据已保存到 jd_item_detail.json 文件")
else:
print(f"API调用失败:{result['reason']},错误码:{result['error_code']}")
else:
print(f"HTTP请求失败,状态码:{response.status_code}")
except requests.exceptions.Timeout:
print("请求超时:京东API响应过慢,请稍后重试")
except requests.exceptions.ConnectionError:
print("网络错误:请检查网络连接或API地址是否正确")
except KeyError as e:
print(f"数据解析失败:缺失字段 {e},可能是商品ID无效或API返回格式变更")
except Exception as e:
print(f"未知错误:{str(e)}")
if __name__ == "__main__":
get_jd_item_detail()
四、代码核心说明(新手友好)
1. 关键步骤拆解
表格
| 步骤 | 代码核心 | 作用 |
|---|---|---|
| 1 | params构造参数 |
传入 AppKey 和商品 ID,是 API 调用的必备条件 |
| 2 | headers设置 User-Agent |
模拟浏览器请求,避免第三方 API 拦截(新手最易踩的坑) |
| 3 | requests.get()发送请求 |
超时时间设为 5 秒,避免程序无限等待 |
| 4 | response.status_code |
先判断 HTTP 请求是否成功,再解析数据 |
| 5 | response.json() |
将 JSON 字符串转为 Python 字典,方便提取数据 |
| 6 | result["error_code"] |
第三方 API 的通用成功标识,非 0 则直接提示失败原因 |
| 7 | 提取核心字段 | 仅保留新手最关心的标题、价格、库存等,避免复杂解析 |
| 8 | 异常捕获 | 覆盖超时、网络、字段缺失等常见异常,新手不会因小错误卡壳 |
2. 核心坑点规避
- User-Agent 缺失:不设置请求头会被 API 拦截,返回「请求非法」,代码中已默认配置;
- KeyError 异常 :部分商品无销量字段,用
item_data.get("sales", "暂无数据")替代直接取值; - 商品 ID 无效:若提示「商品不存在」,检查 SKU_ID 是否从商品 URL 正确提取(京东商品 ID 为纯数字);
- AppKey 错误:提示「APPKEY 不存在」时,核对聚合数据的 AppKey 是否复制正确(注意前后无空格)。
五、运行结果示例
plaintext
=== 京东商品详情 ===
商品ID:100060195820
商品标题:京东京造 轻量便携保温杯 350ml 白色
商品价格:99.9元
库存状态:有货
店铺名称:京东京造官方旗舰店
商品主图:https://img10.360buyimg.com/n1/jfs/t1/21628/19/26077/44379/649a7f30F8040d770/xxx.jpg
销量:10万+
商品数据已保存到 jd_item_detail.json 文件
六、进阶扩展(新手可选)
1. 批量抓取多个商品
只需将 SKU_ID 改为列表,循环调用即可:
python
运行
# 批量商品ID
sku_list = ["100060195820", "100080907904", "100095380451"]
for sku in sku_list:
print(f"\n===== 开始抓取商品 {sku} =====")
SKU_ID = sku # 替换当前商品ID
get_jd_item_detail()
2. 解析更多字段
若需要库存数量、发货地、商品规格等,可在detail字典中添加对应字段:
python
运行
detail = {
# 原有字段...
"库存数量": item_data["stock_num"],
"发货地": item_data["delivery_place"],
"商品规格": item_data["spec_info"]
}
总结
- 核心逻辑:京东商品详情抓取的入门核心是「构造请求参数 → 发送请求 → 解析 JSON 核心字段」,代码仅 30 + 行即可完成;
- 关键配置 :必须设置
User-Agent、核对AppKey和SKU_ID,这是新手最易出错的 3 个点; - 异常处理:覆盖超时、网络、字段缺失等异常,保证程序稳定运行;
- 扩展方向:批量抓取、解析更多字段、保存到 Excel,均可基于入门代码快速扩展。
这套方案完全适配新手,无需复杂的 API 签名、加密等操作,复制代码替换配置即可运行,是快速掌握京东商品详情 API 的最佳入门方式。