京东商品详情全自动采集实战|标准化 JD 商品详情接口 + 多 AI Agent 搭建无人化货源分析系统

Ed10小时前未分类5


做京东货源采购、竞品调研、跨平台铺货、自研进销存系统的开发者和运营,都会频繁需要完整商品结构化数据。京东区分自营、工业、医药、全球购多个业务站点,不同站点页面字段展示逻辑存在差异,如果手动打开页面复制标题、售价、尺码规格、主图、店铺信息,批量处理几十上百款商品会耗费大量时间,人工整理 SKU 还极易出错。

传统页面爬虫方案存在明显短板:页面改版后解析规则失效、高频抓取容易触发风控限制、多站点适配开发成本高。今天分享一套标准化商品详情查询接口方案,搭配分层 AI Agent 自动化架构,输入商品 ID 即可一键拉取全量商品数据,自动区分京东各业务站点,完成数据清洗、规格拆解、信息汇总导出,全程无需人工介入,个人选品、工作室批量铺货、企业 ERP 对接都能直接落地使用。

一、京东商品详情查询接口完整文档

接口标识:jd.item_get核心能力:传入商品 ID 与站点标识,返回商品标题、价格区间、库存、全套图片、多规格 SKU、品牌、店铺、销售属性等完整结构化数据请求地址:https://api-gw.onebound.cn/jd/item_get

1.1 通用公共请求参数

所有接口请求均通过 GET 方式拼接参数,公共参数统一由调度 Agent 全局挂载配置,一次填写,所有采集任务自动携带,无需重复传入。

表格

参数名类型必填使用说明
keyString接口调用授权凭证,URL 拼接传递
secretString接口安全密钥,用于身份校验
api_nameString接口标识,固定填写 jd.item_get
cacheString可选 yes/no,默认开启缓存,重复查询提速
result_typeString返回数据格式,支持 json、jsonu、xml;jsonu 中文展示无转义
langString输出语言,默认 cn 简体中文
versionString接口版本标识,按需传入

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,拓展性极强。

  1. 任务调度 Agent接收批量商品 ID 清单、站点类型、图片水印开关等配置,批量生成标准化请求参数队列,统一管理全局 key、secret 等公共配置,向下分发采集任务。

  2. JD 商品请求 Agent循环遍历任务队列,循环调用商品详情接口,捕获网络异常、各类错误码,按照预设策略完成重试、延时、跳过操作,批量存储原始返回 JSON 数据。

  3. 数据清洗结构化 Agent过滤空值、无效冗余字段,拆分长串属性字符串,统一图片链接格式,把零散 SKU、品牌、分类、店铺信息整理为规整字典,剔除无效空白数据。

  4. 货源筛选 Agent自定义筛选规则,支持按价格区间、库存数量、是否自营店铺过滤商品,筛除滞销、溢价过高、无库存的低价值货源,输出优质商品清单。

  5. 报表导出 Agent汇总清洗、筛选完成的结构化数据,自动生成 Excel 表格,包含标题、价格、SKU 明细、全套图片链接、店铺信息,可直接用于铺货、货源复盘、数据分析。

完整自动化执行链路

批量商品 ID 列表输入 → 调度 Agent 生成请求任务队列 → 请求 Agent 循环拉取原始商品数据 → 清洗 Agent 规整所有字段 → 筛选 Agent 过滤优质货源 → 导出 Agent 生成可落地 Excel 报表

三、开箱即用完整 Python 源码

代码模块化拆分对应五大 Agent,注释清晰,替换密钥、商品 ID、站点参数即可直接运行,支持批量商品循环采集、自动异常处理、数据筛选与本地文件导出。

python

运行

# -*- coding: utf-8 -*-"""多AI Agent 京东商品详情全自动采集工具接口:jd.item_get功能:多站点兼容、批量采集、数据清洗、货源筛选、Excel报表导出适配自营/工业/医药/全球购全渠道商品"""import requestsimport timeimport pandas as pd# ====================== 全局自定义配置区 ======================API_KEY = "你的调用key"API_SECRET = "你的调用secret"# 批量待采集商品ID列表,可自行追加多个idGOODS_ID_LIST = ["10335871600","10057467958584"]# 站点类型 jd/gongye/yiyao/hkDOMAIN_TYPE = "jd"# 1=返回无水印图片,0/空=带水印WATERMARK = 1# 价格筛选区间MIN_PRICE = 50MAX_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)

运行前置操作

  1. 安装依赖库,执行终端命令

bash

运行

pip install requests pandas openpyxl
  1. 修改代码顶部配置区,填入自己的 key、secret,替换需要采集的商品 ID 列表

  2. 按需修改 domain_type 切换自营 / 工业 / 医药站点,调整价格筛选区间

  3. 直接运行脚本,全自动完成采集、清洗、筛选、导出

四、四大落地业务场景

场景 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 架构,最大优势是低维护、全自动化、多站点兼容,不用持续适配页面改版规则,异常场景全部内置自愈逻辑。

整套轻量化方案既能满足个人小批量选品需求,也能二次拓展对接企业级数据分析、货源管理系统。在此基础上还可继续拓展能力:批量采集商品评论、对接大模型做商品卖点自动提炼、多平台同款比价聚合,完整搭建一站式京东货源智能分析体系。


相关文章

深耕京东评论接口4年,那些熬夜踩过的坑,新手看完少走3年弯路

深耕京东评论接口4年,那些熬夜踩过的坑,新手看完少走3年弯路

做电商技术开发这么多年,对接过京东各类接口,最让人头疼的莫过于评论接口。它不像商品详情、关键字接口那样逻辑清晰、文档详尽,反而藏着太多“隐形门槛”——签名参数藏在社区沉帖里、主评追评分离存储、限流比想...

电商平台必看的API接口技术选型指南

一、电商场景核心API技术指标促销期万级QPS承载能力大促期间需支持每秒5000+次并发调用建议采用动态扩容机制,突发流量自动增加30%服务器资源毫秒级价格更新同步比价类接口要求200ms内完成全网数...

利润算得准才敢爆单!Open Claw 1688 运费查询 API,精准核算成本 + 一键下单付款(附 Python 源码)

做电商、无货源、跨境、店群的朋友都懂:1688 拿货,运费直接决定利润。价格看着低,一加上运费就亏本;不同地区、不同数量运费差异巨大;手动算运费慢、不准、还容易漏算,最后卖得越多亏得越惨。用 ...

店铺全景拆解!Open Claw 1688 首页展示 API,一键抓取店铺首页全部装修与布局资源(附 Python 源码)

做无货源铺货、电商运营、竞品分析、店铺装修复刻的从业者都很清楚:研究同行优质 1688 店铺首页布局、banner 海报、导航菜单、logo 形象、门店模块设置,是跟款装修、竞品拆解、货源深度分析的核...

电商选品避坑指南!Open Claw 1688 店铺搜索 API,精准锁定优质供应商(附 Python 源码)

电商选品避坑指南!Open Claw 1688 店铺搜索 API,精准锁定优质供应商(附 Python 源码)做电商、无货源、跨境铺货的朋友都清楚,选品先选供应商。1688 上店铺鱼龙混杂,找靠谱的源...

电商API数据之《程序员受难记》(1)

干了八年电商开发,被API“毒打”的经历能写本《程序员受难记》!从凌晨三点的服务器报警,到被运营追着骂数据错乱,今天就扒一扒那些让我摔得鼻青脸肿的实战案例,附赠能救命的代码片段!还记得第一次对接拼多多...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。