news 2026/4/23 14:01:20

京东商品详情API入门:Python快速实现商品信息抓取

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
京东商品详情API入门:Python快速实现商品信息抓取

你想通过 Python 快速实现京东商品详情 API 的调用,完成商品信息抓取,我会基于京东开放平台的合规 API(或新手友好的第三方 API),提供「零基础可落地、代码极简、步骤清晰」的入门方案,涵盖从 API 准备到数据解析的全流程,避开京东 API 的核心入门坑点。

一、核心前提(入门必看)

  1. API 选择
    • 新手推荐:第三方开放平台 API(如聚合数据、易源数据),无需企业资质,免费试用,上手快;
    • 合规进阶:京东开放平台 API(需企业资质、申请应用、签约接口),适合生产环境;
  2. 核心流程API密钥申请 → 构造请求参数 → 发送HTTP请求 → 解析JSON响应 → 提取商品数据
  3. 必备库requests(发送 HTTP 请求)、json(解析 JSON 数据),均为 Python 内置 / 主流库,新手易掌握。

二、前置准备

1. 安装依赖库

仅需安装requests(Python3.6 + 自带,若缺失则执行以下命令):

bash

运行

pip install requests
2. 获取第三方京东商品详情 API 密钥

以「聚合数据」为例(新手首选,免费试用):

  1. 关注博主,搜索「京东商品详情」;
  2. 免费领取 API 接口,完成实名认证,获取AppKey(核心调用密钥);
  3. 查看接口文档,确认核心信息:
    • 请求地址: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. 关键步骤拆解

表格

步骤代码核心作用
1params构造参数传入 AppKey 和商品 ID,是 API 调用的必备条件
2headers设置 User-Agent模拟浏览器请求,避免第三方 API 拦截(新手最易踩的坑)
3requests.get()发送请求超时时间设为 5 秒,避免程序无限等待
4response.status_code先判断 HTTP 请求是否成功,再解析数据
5response.json()将 JSON 字符串转为 Python 字典,方便提取数据
6result["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"] }

总结

  1. 核心逻辑:京东商品详情抓取的入门核心是「构造请求参数 → 发送请求 → 解析 JSON 核心字段」,代码仅 30 + 行即可完成;
  2. 关键配置:必须设置User-Agent、核对AppKeySKU_ID,这是新手最易出错的 3 个点;
  3. 异常处理:覆盖超时、网络、字段缺失等异常,保证程序稳定运行;
  4. 扩展方向:批量抓取、解析更多字段、保存到 Excel,均可基于入门代码快速扩展。

这套方案完全适配新手,无需复杂的 API 签名、加密等操作,复制代码替换配置即可运行,是快速掌握京东商品详情 API 的最佳入门方式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 19:48:38

Cesium进阶教程(2)线性高度雾

本系列教程适合有前端基础以及一定三维GIS开发基础、想学习cesium高阶内容的同学,例如:WebGIS开发工程师、前端工程师、GIS专业学生和相关科研人员等。 视频版戳此处观看 文字版教程: Cesium进阶教程(1)在cesium后处理…

作者头像 李华
网站建设 2026/4/21 7:25:15

数据湖中的实时数据处理:Flink集成方案详解

数据湖中的实时数据处理:Flink集成方案详解 关键词:数据湖、实时数据处理、Apache Flink、流批一体、Hudi/Delta Lake 摘要:本文将带您深入理解数据湖与实时处理技术的融合场景,重点解析Apache Flink如何与数据湖(如Hu…

作者头像 李华
网站建设 2026/4/19 23:33:23

2026 年企业数字化转型必备!智慧人力系统核心功能与应用场景解析

在企业数字化转型的进程中,人力资源管理的数字化升级成为关键环节,智慧人力系统则是实现这一升级的核心载体。不少企业在转型中面临人事流程割裂、数据利用低效、管理决策缺乏依据的问题,而智慧人力系统通过整合技术与人力管理业务&#xff0…

作者头像 李华
网站建设 2026/4/23 11:35:18

Java毕设项目推荐-基于springboot的慢性病健康管理系统的设计与实现基于大数据的慢性病健康管理系统【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/23 9:56:21

【日记】这炒河粉好辣!怎么还能放山海椒的啊…… 不过好好吃(1703 字)

正文 终于凑到了同事跟朋友在一块儿健身了。本来想让他们俩相互认识认识,特喵的俩人还是叫我推微信。我真绷不住了。 有那么社恐吗,这话都不聊两句的…… 明明他马上就要到总行去打黑工了。不过该说不说,这运气也是没谁了。全国就那么几个人&…

作者头像 李华
网站建设 2026/4/23 9:56:29

基于Springboot智能停车计费管理系统【附源码+文档】

💕💕作者: 米罗学长 💕💕个人简介:混迹java圈十余年,精通Java、小程序、数据库等。 💕💕各类成品Java毕设 。javaweb,ssm,springboot等项目&#…

作者头像 李华