京东商品详情全自动采集实战|标准化 JD 商品详情接口 + 多 AI Agent 搭建无人化货源分析系统
做京东货源采购、竞品调研、跨平台铺货、自研进销存系统的开发者和运营,都会频繁需要完整商品结构化数据。京东区分自营、工业、医药、全球购多个业务站点,不同站点页面字段展示逻辑存在差异,如果手动打开页面复制标题、售价、尺码规格、主图、店铺信息,批量处理几十上百款商品会耗费大量时间,人工整理 SKU 还极易出错。
传统页面爬虫方案存在明显短板:页面改版后解析规则失效、高频抓取容易触发风控限制、多站点适配开发成本高。今天分享一套标准化商品详情查询接口方案,搭配分层 AI Agent 自动化架构,输入商品 ID 即可一键拉取全量商品数据,自动区分京东各业务站点,完成数据清洗、规格拆解、信息汇总导出,全程无需人工介入,个人选品、工作室批量铺货、企业 ERP 对接都能直接落地使用。
一、京东商品详情查询接口完整文档
接口标识:jd.item_get核心能力:传入商品 ID 与站点标识,返回商品标题、价格区间、库存、全套图片、多规格 SKU、品牌、店铺、销售属性等完整结构化数据请求地址:https://api-gw.onebound.cn/jd/item_get
1.1 通用公共请求参数
所有接口请求均通过 GET 方式拼接参数,公共参数统一由调度 Agent 全局挂载配置,一次填写,所有采集任务自动携带,无需重复传入。
表格
| 参数名 | 类型 | 必填 | 使用说明 |
|---|---|---|---|
| key | String | 是 | 接口调用授权凭证,URL 拼接传递 |
| secret | String | 是 | 接口安全密钥,用于身份校验 |
| api_name | String | 是 | 接口标识,固定填写 jd.item_get |
| cache | String | 否 | 可选 yes/no,默认开启缓存,重复查询提速 |
| result_type | String | 否 | 返回数据格式,支持 json、jsonu、xml;jsonu 中文展示无转义 |
| lang | String | 否 | 输出语言,默认 cn 简体中文 |
| version | String | 否 | 接口版本标识,按需传入 |
1.2 业务核心入参
表格
| 参数名 | 必填 | 参数释义 | 取值规则 |
|---|---|---|---|
| num_iid | 是 | 京东商品唯一 ID | 商品详情页链接内数字 ID |
| domain_type | 是 | 业务站点区分 | jd = 京东自营;gongye = 京东工业;yiyao = 京东医药;hk = 全球购 / 国际站 |
| watermark | 否 | 图片水印控制 | 传 1 返回无水印原图,不传默认带平台水印 |
基础请求示例 URL
plaintext
https://api-gw.onebound.cn/jd/item_get/?key=你的密钥key&secret=你的密钥secret&num_iid=10335871600&domain_type=jd
1.3 返回响应字段分层解析
接口返回标准 JSON 结构,数据统一封装在 item 对象内,结构规整,适配 AI Agent 自动解析、提取、分类存储,核心字段分为四大类:
1. 商品基础信息
num_iid(商品 ID)、title(完整标题)、desc_short(简短简介)、price(日常售价)、orginal_price(原价)、nick(店铺掌柜名)、num(总库存)、min_num(最小起购量)、detail_url(商品原生链接)、brand/brandId(品牌与品牌编号)、rootCatId/cid(一二级分类 ID)、location(发货地)
2. 素材图片资源
pic_url(封面主图)、item_imgs(轮播图数组)、prop_imgs/props_img(规格对应属性图)、video_id(商品短视频标识)
3. 规格 SKU 与销售属性
props_name:属性名编码串,格式固定 pid:vid: 分类:值property_alias:规格别名映射props_list:键值对结构化属性字典skus 数组:每个单品规格独立数据,包含 sku 唯一 ID、对应规格名称、售价、库存、单品链接
4. 店铺商家信息
seller_id、shop_id、seller_info 对象,包含店铺主页地址、店铺名称、店铺类型标识
1.4 标准化错误码 & 自动化处理策略
智能异常 Agent 内置全套错误码判断逻辑,出现异常自动执行重试、延时、任务终止、日志提醒,无需人工盯守程序:
表格
| 错误码 | 问题场景 | Agent 自动处理方案 |
|---|---|---|
| 0000 | 调用成功,数据正常返回 | 进入清洗、解析、存储流程 |
| 2000 | 请求成功,但无商品数据 | 标记商品失效,跳过当前 ID,继续下一条任务 |
| 4003 | 参数格式错误、参数缺失 | 自动校验 num_iid、domain_type 等必填项,终止本条请求 |
| 4008 | 接口访问并发超限 | 休眠延时,分批次延后重试 |
| 4013 | 当日调用额度耗尽 | 暂停全部采集任务,记录断点,次日续跑 |
| 4016 | 账户可用额度不足 | 输出告警日志,停止批量采集 |
| 4017 | 请求链路超时 | 最多重试 2 次,超时直接跳过该商品 |
| 4005 | 授权校验失败 | 提示核对 key、secret 凭证 |
二、多 AI Agent 自动化协作整体架构
沿用成熟的分层解耦智能体设计,整套采集流程拆分为 5 个独立 Agent,流水线串联执行,模块之间互不耦合,后期新增功能、修改规则只需调整对应 Agent,拓展性极强。
- 任务调度 Agent接收批量商品 ID 清单、站点类型、图片水印开关等配置,批量生成标准化请求参数队列,统一管理全局 key、secret 等公共配置,向下分发采集任务。
- JD 商品请求 Agent循环遍历任务队列,循环调用商品详情接口,捕获网络异常、各类错误码,按照预设策略完成重试、延时、跳过操作,批量存储原始返回 JSON 数据。
- 数据清洗结构化 Agent过滤空值、无效冗余字段,拆分长串属性字符串,统一图片链接格式,把零散 SKU、品牌、分类、店铺信息整理为规整字典,剔除无效空白数据。
- 货源筛选 Agent自定义筛选规则,支持按价格区间、库存数量、是否自营店铺过滤商品,筛除滞销、溢价过高、无库存的低价值货源,输出优质商品清单。
- 报表导出 Agent汇总清洗、筛选完成的结构化数据,自动生成 Excel 表格,包含标题、价格、SKU 明细、全套图片链接、店铺信息,可直接用于铺货、货源复盘、数据分析。
完整自动化执行链路
批量商品 ID 列表输入 → 调度 Agent 生成请求任务队列 → 请求 Agent 循环拉取原始商品数据 → 清洗 Agent 规整所有字段 → 筛选 Agent 过滤优质货源 → 导出 Agent 生成可落地 Excel 报表
三、开箱即用完整 Python 源码
代码模块化拆分对应五大 Agent,注释清晰,替换密钥、商品 ID、站点参数即可直接运行,支持批量商品循环采集、自动异常处理、数据筛选与本地文件导出。
python
运行
# -*- coding: utf-8 -*-
"""
多AI Agent 京东商品详情全自动采集工具
接口:jd.item_get
功能:多站点兼容、批量采集、数据清洗、货源筛选、Excel报表导出
适配自营/工业/医药/全球购全渠道商品
"""
import requests
import time
import pandas as pd
# ====================== 全局自定义配置区 ======================
API_KEY = "你的调用key"
API_SECRET = "你的调用secret"
# 批量待采集商品ID列表,可自行追加多个id
GOODS_ID_LIST = ["10335871600","10057467958584"]
# 站点类型 jd/gongye/yiyao/hk
DOMAIN_TYPE = "jd"
# 1=返回无水印图片,0/空=带水印
WATERMARK = 1
# 价格筛选区间
MIN_PRICE = 50
MAX_PRICE = 1000
# =============================================================
BASE_API = "https://api-gw.onebound.cn/jd/item_get"
# Agent1:任务调度与参数生成
class ScheduleAgent:
def create_task_queue(self, id_list, domain, watermark):
task_arr = []
for goods_id in id_list:
params = {
"key": API_KEY,
"secret": API_SECRET,
"api_name": "jd.item_get",
"num_iid": goods_id,
"domain_type": domain,
"watermark": watermark,
"cache": "yes",
"result_type": "jsonu",
"lang": "cn"
}
task_arr.append(params)
print(f"已生成 {len(task_arr)} 个商品采集任务")
return task_arr
# Agent2:接口请求、异常捕获与重试
class FetchAgent:
def __init__(self):
self.raw_data_pool = []
def single_fetch(self, params, retry=2):
try:
resp = requests.get(BASE_API, params=params, timeout=20)
res_json = resp.json()
err_code = res_json.get("error_code")
goods_id = params["num_iid"]
if err_code == "0000":
item_info = res_json.get("item", {})
self.raw_data_pool.append(item_info)
print(f"✅ 商品{goods_id} 采集完成")
return True
elif err_code == "2000":
print(f"ℹ️ 商品{goods_id}:不存在或已下架,跳过")
return False
elif err_code == "4008":
print(f"⚠️ 访问并发过高,等待5s重试商品{goods_id}")
time.sleep(5)
if retry > 0:
self.single_fetch(params, retry - 1)
return False
elif err_code == "4017":
print(f"⚠️ 商品{goods_id} 请求超时,重试一次")
time.sleep(3)
if retry > 0:
self.single_fetch(params, retry - 1)
return False
else:
print(f"❌ 商品{goods_id} 采集异常:{res_json.get('reason')}")
return False
except Exception as e:
print(f"网络请求异常:{str(e)}")
return False
def run_all_tasks(self, task_list):
for task in task_list:
self.single_fetch(task)
time.sleep(0.6)
return self.raw_data_pool
# Agent3:数据清洗、字段规整
class CleanAgent:
def clean_item_data(self, raw_list):
clean_result = []
for item in raw_list:
temp = {}
# 基础商品信息
temp["商品ID"] = item.get("num_iid", "")
temp["商品标题"] = item.get("title", "")
temp["售价"] = item.get("price", "")
temp["原价"] = item.get("orginal_price", "")
temp["店铺名称"] = item.get("seller_info", {}).get("shop_name", "")
temp["商品链接"] = f"https:{item.get('detail_url', '')}"
temp["品牌"] = item.get("brand", "")
temp["总库存"] = item.get("num", 0)
temp["发货地"] = item.get("location", "未标注")
# 主图拼接
main_img = item.get("pic_url", "")
img_list = [img["url"] for img in item.get("item_imgs", [])]
temp["主图链接"] = f"https:{main_img}" if main_img else ""
temp["全部轮播图"] = ",".join([f"https:{u}" for u in img_list])
# 解析SKU规格
sku_raw = item.get("skus", {}).get("sku", [])
sku_text = []
for sku in sku_raw:
sku_text.append(f"{sku['properties_name']}|价格{sku['price']}|库存{sku['quantity']}")
temp["全部SKU规格"] = "\n".join(sku_text)
clean_result.append(temp)
print(f"\n数据清洗完成,有效商品共 {len(clean_result)} 个")
return clean_result
# Agent4:货源智能筛选
class FilterAgent:
def filter_by_price(self, data_list, low, high):
filter_arr = []
for goods in data_list:
try:
price = float(goods["售价"])
if low <= price <= high:
filter_arr.append(goods)
except:
continue
print(f"\n价格筛选完成,{low}~{high}元符合货源共 {len(filter_arr)} 个")
return filter_arr
# Agent5:Excel报表导出
class ExportAgent:
def save_excel(self, data):
df = pd.DataFrame(data)
file_name = "京东货源采集清单.xlsx"
df.to_excel(file_name, index=False)
print(f"\n📁 货源表格已生成:{file_name}")
print("🎉 全流程自动化采集执行完毕")
# 程序主入口
if __name__ == "__main__":
# 1. 生成采集任务队列
schedule = ScheduleAgent()
tasks = schedule.create_task_queue(GOODS_ID_LIST, DOMAIN_TYPE, WATERMARK)
# 2. 批量调用接口采集原始数据
fetcher = FetchAgent()
all_raw = fetcher.run_all_tasks(tasks)
if not all_raw:
print("未采集到任何商品数据,程序终止")
else:
# 3. 清洗规整所有字段
cleaner = CleanAgent()
clean_data = cleaner.clean_item_data(all_raw)
# 4. 按价格筛选优质货源
filter_agent = FilterAgent()
final_data = filter_agent.filter_by_price(clean_data, MIN_PRICE, MAX_PRICE)
# 5. 导出本地Excel表格
export = ExportAgent()
export.save_excel(final_data)
运行前置操作
- 安装依赖库,执行终端命令
bash
运行
pip install requests pandas openpyxl
- 修改代码顶部配置区,填入自己的 key、secret,替换需要采集的商品 ID 列表
- 按需修改 domain_type 切换自营 / 工业 / 医药站点,调整价格筛选区间
- 直接运行脚本,全自动完成采集、清洗、筛选、导出
四、四大落地业务场景
场景 1:京东渠道货源批量比价采购
整理一批目标品类商品 ID,脚本批量拉取售价、库存、发货仓库、多规格价格,横向对比多家店铺同款成本,快速筛选性价比最高的采购货源,替代人工逐个打开页面记录数据。
场景 2:跨平台无货源铺货素材整理
采集商品标题、全套轮播图、规格 SKU、品牌参数,导出表格后可直接导入铺货工具,自动适配拼多多、抖音小店等渠道上架,统一获取无水印素材降低美工工作量。
场景 3:竞品商品动态监控
搭配定时任务每日自动采集同行爆款商品,监控价格调整、库存变动、规格增减,及时捕捉竞品促销活动,调整自身商品定价与运营策略。
场景 4:企业自研 ERP 商品库搭建
对接内部进销存系统,定时同步京东渠道商品完整结构化数据,自动维护商品分类、规格、价格档案,实现多渠道货源统一数字化管理。
五、开发运维常见问题 FAQ
Q1:返回 error_code=2000,商品无数据怎么解决?
A:两种常见情况:商品 ID 输入错误;商品已下架、平台屏蔽对外数据。核对链接内数字 ID,更换在售商品重试即可。
Q2:domain_type 参数填写错误会有什么影响?
A:站点标识不匹配会返回参数错误 4003,工业、医药、全球购商品必须对应填写专属 domain_type,不能统一填 jd。
Q3:频繁报 4008 并发超限如何优化?
A:延长代码中 time.sleep 休眠间隔,拆分大批量 ID 为多组,分不同时段执行采集任务,降低瞬时请求频率。
Q4:图片链接打开失效怎么办?
A:接口返回的图片为相对路径,代码清洗阶段已经自动拼接 https 协议前缀;如果依旧打不开,大概率是商品下架图片被平台清理。
Q5:能否实现定时自动批量采集?
A:可以,搭配 Windows 计划任务、Linux crontab 定时运行脚本,或在代码外层增加循环、定时休眠逻辑,实现每日无人值守监控采集。
六、方案总结
相比传统爬虫,标准化商品详情接口搭配多 AI Agent 架构,最大优势是低维护、全自动化、多站点兼容,不用持续适配页面改版规则,异常场景全部内置自愈逻辑。
整套轻量化方案既能满足个人小批量选品需求,也能二次拓展对接企业级数据分析、货源管理系统。在此基础上还可继续拓展能力:批量采集商品评论、对接大模型做商品卖点自动提炼、多平台同款比价聚合,完整搭建一站式京东货源智能分析体系。
更多推荐
所有评论(0)