在京东货源采购、竞品深度调研、跨平台铺货、企业进销存系统对接的落地场景中,商品结构化数据采集是运营与开发的基础核心工作。京东平台涵盖自营、工业、医药、全球购等多个垂直业务站点,不同站点的页面字段、数据展示逻辑差异较大。

传统人工采集方式需要逐一点开商品页面,手动复制标题、售价、规格参数、SKU信息、素材图片、店铺资料,批量处理数十上百款商品时效率极低。同时人工整理SKU规格、统计库存价格极易出现误差,无法满足常态化、批量化、自动化的运营需求。

传统网页爬虫方案短板更为突出:页面改版后解析规则直接失效、高频抓取易触发平台风控封禁、多站点适配开发成本高、维护难度大。针对以上痛点,本文带来jd.item_get标准化京东商品详情接口实战方案,搭配成熟五层多AI Agent自动化架构,实现多站点商品全量数据一键采集、自动清洗、规格拆解、货源筛选、报表导出全流程无人值守。

整套方案无需复杂爬虫部署,适配京东全品类、全业务站点,个人选品铺货、工作室批量货源采集、企业ERP系统对接均可直接落地,代码开箱即用、稳定性强。

一、jd.item_get京东商品详情接口全维度解析

1.1 接口基础概述

接口标识:jd.item_get 核心能力:通过商品ID+站点标识,精准获取京东全业务站点商品结构化数据,涵盖基础信息、价格体系、SKU规格、素材资源、店铺商家信息、库存销量等全维度数据 请求地址https://api-gw.onebound.cn/jd/item_get 请求方式:标准GET请求,低门槛、高兼容、易拓展,适配自动化批量调用场景

1.2 全局公共请求参数

公共参数为全局通用配置,由调度Agent统一挂载复用,一次配置、全任务生效,无需重复填写,适配批量高频采集场景。

参数名 类型 是否必填 使用说明
key String 接口授权调用凭证,用于身份校验
secret String 接口安全密钥,保障调用合法性
api_name String 固定取值jd.item_get,锁定当前商品详情接口
cache String 默认yes,开启缓存可大幅提升重复采集速度
result_type String 支持jsonu格式,中文数据无转义、无乱码
lang String 默认cn,返回简体中文结构化数据
version String 接口版本标识,按需自定义传入

1.3 核心业务请求参数

核心参数用于精准定位商品与业务站点,是多站点适配采集的关键参数,严格按照取值规则传入即可正常调用。

参数名 是否必填 参数释义 取值规则
num_iid 京东商品唯一ID 从商品详情链接中提取纯数字ID
domain_type 业务站点区分标识 jd=自营、gongye=工业、yiyao=医药、hk=全球购
watermark 图片水印控制 1=无水印原图,默认空/0=带平台水印

1.4 标准请求URL示例

https://api-gw.onebound.cn/jd/item_get/?key=你的密钥key&secret=你的密钥secret&num_iid=10335871600&domain_type=jd

1.5 核心响应字段分层解析

接口所有数据统一封装在item对象中,字段分层清晰、结构规整,完美适配AI Agent自动解析与结构化存储,核心商用字段分为四大模块:

① 商品基础信息

商品ID、完整标题、简短简介、日常售价、原价、发货地、品牌信息、分类ID、最小起购量、商品原生链接,满足基础货源信息统计需求。

② 素材图片资源

封面主图、全屏轮播图集、规格属性图、商品视频标识,支持一键批量整理铺货素材。

③ 规格SKU与销售属性

结构化属性参数、规格别名映射、全量SKU列表,包含每个单品的规格名称、独立售价、库存数量、单品链接,彻底解决人工整理SKU出错问题。

④ 店铺商家信息

掌柜昵称、店铺ID、卖家ID、店铺完整资料,可用于筛选优质店铺货源、复盘竞品店铺资质。

1.6 标准化错误码 & AI自动化自愈策略

接口内置完善错误码体系,Agent预设全套异常处理逻辑,无需人工值守,自动完成重试、延时、断点续跑、告警终止等操作。

错误码 异常场景 自动化处理方案
0000 调用成功,数据正常返回 进入数据清洗、结构化解析、报表导出流程
2000 无有效商品数据、商品下架 标记失效商品,自动跳过当前任务,继续下一条采集
4003 参数错误、必填参数缺失 校验参数合法性,终止当前无效请求
4008 并发调用频次超限 休眠延时,分批次延后重试请求
4013 当日调用额度耗尽 暂停全部任务、记录断点,次日自动续跑
4016 账户余额不足 输出告警日志,终止所有批量采集任务
4017 接口请求超时 自动重试2次,失败则跳过当前商品
4005 授权校验失败 日志提示,核对密钥凭证后重新调用

二、五层多AI Agent自动化协作架构

延续系列成熟的模块化流水线智能体架构,将京东商品采集全流程拆解为5个独立解耦的AI Agent,各司其职、串联执行,模块互不干扰,后期拓展、迭代、改规则无需重构整体代码,可维护性与拓展性极强。

2.1 各智能体核心职责

  • 任务调度Agent:批量读取商品ID列表、站点类型、水印配置、筛选参数,统一挂载全局授权信息,批量生成标准化请求任务队列,实现任务批量分发;
  • 商品请求Agent:循环遍历任务队列,调用京东商品详情接口,捕获网络异常与各类错误码,执行重试、延时、跳过等自愈逻辑,批量采集原始数据;
  • 数据清洗Agent:过滤空值与冗余字段,规整图片链接、规格参数、时间字段,拆分SKU结构化数据,统一所有字段格式,输出标准化可商用数据;
  • 货源筛选Agent:自定义价格区间、库存阈值等规则,自动过滤溢价过高、无库存、滞销的低价值货源,精准筛选优质商品;
  • 报表导出Agent:汇总结构化优质数据,一键生成Excel商用报表,涵盖商品全维度信息,可直接用于铺货、复盘、数据分析、系统对接。

2.2 全自动化执行链路

批量商品ID导入 → 调度Agent生成任务队列 → 请求Agent批量采集原始数据 → 清洗Agent结构化规整数据 → 筛选Agent过滤优质货源 → 导出Agent生成成品报表

三、开箱即用完整Python源码

以下代码严格对应五层Agent架构,注释详细、逻辑清晰,适配京东全业务站点,集成批量采集、异常自愈、数据清洗、货源筛选、Excel导出全功能,替换授权凭证与参数即可直接部署运行。

# -*- coding: utf-8 -*-
"""
京东商品详情AI全自动采集系统
接口:jd.item_get
架构:五层多AI Agent流水线架构
功能:多站点兼容、批量商品采集、异常重试、数据清洗、货源筛选、报表导出
适配:京东自营/工业/医药/全球购全渠道货源分析、铺货、竞品监控
运行环境:Python3.7+
"""
import requests
import time
import pandas as pd

# ====================== 自定义配置区域(自行修改) ======================
API_KEY = "你的调用key"
API_SECRET = "你的调用secret"
# 支持批量多个商品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 = "httpsapi-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"⚠️ 并发超限,5秒后重试商品【{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", "").strip()
            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, engine="openpyxl")
        print(f"\n📁 报表导出成功!文件名称:{file_name}")
        print("🎉 京东商品自动化采集全流程执行完毕!")

# 程序统一入口
if __name__ == "__main__":
    print("===== 京东多站点商品AI智能采集系统 =====")
    # 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. 结构化清洗数据
        clean_data = CleanAgent().clean_item_data(all_raw)
        # 4. 智能筛选优质货源
        final_data = FilterAgent().filter_by_price(clean_data, MIN_PRICE, MAX_PRICE)
        # 5. 自动生成商用报表
        ExportAgent().save_excel(final_data)

四、项目部署运行步骤

第一步:安装项目依赖库

pip install requests pandas openpyxl

第二步:自定义参数配置,替换个人API授权密钥、批量商品ID、站点类型、价格筛选区间、水印配置;

第三步:直接运行脚本,程序自动完成任务生成、批量采集、异常容错、数据清洗、货源筛选、报表导出全流程。

五、商业化落地业务场景

5.1 批量货源比价采购

批量导入品类商品ID,全自动采集多款商品的售价、库存、发货地、规格参数,横向对比不同店铺货源成本,快速筛选高性价比采购渠道,彻底替代人工逐个核对记录的低效模式。

5.2 跨平台无货源铺货

一键采集商品标题、无水印素材图、全套SKU规格、品牌参数,导出的标准化表格可直接对接铺货工具,快速完成多平台上新,大幅降低素材整理、规格录入的人工成本。

5.3 竞品动态监控分析

搭配系统定时任务,每日自动采集同行爆款商品数据,实时监控价格调整、库存变动、规格增减、活动变动,及时捕捉竞品运营动作,快速调整自身定价与销售策略。

5.4 企业数字化商品库搭建

对接自研ERP、进销存系统,定时同步京东全渠道商品结构化数据,自动维护商品档案、规格体系、价格台账,实现多渠道货源统一数字化管理。

六、常见问题FAQ(精准排错)

Q1:返回2000无商品数据如何解决?

大概率为商品ID填写错误、商品已下架、平台隐藏商品数据。核对商品链接内纯数字ID,更换在售商品重试即可。

Q2:domain_type参数填写错误会报错吗?

会触发4003参数错误。工业、医药、全球购商品必须匹配对应站点参数,不可统一使用jd默认站点,需按业务场景精准配置。

Q3:频繁出现4008并发超限如何优化?

适当延长代码内休眠间隔,将大批量商品ID拆分多组,分时段分批执行采集任务,降低瞬时请求频率,稳定采集成功率。

Q4:图片链接无法正常打开?

代码已自动补全https协议前缀,若依旧失效,多为商品下架后平台清理素材资源,属于正常平台限制。

Q5:是否支持定时自动化采集?

支持,可搭配Windows计划任务、Linux定时任务,实现每日无人值守批量采集、竞品监控、货源数据更新。

七、方案总结

相较于传统爬虫,基于jd.item_get标准化接口+多AI Agent分层架构的采集方案,完美解决了页面改版失效、风控封禁、多站点适配难、维护成本高的行业痛点。整套自动化体系容错性高、拓展性强、部署轻量化,无需人工持续运维。

从批量任务调度、自动化采集、数据结构化清洗,到智能货源筛选、商用报表导出,全程无人值守,完全适配个人选品铺货、工作室批量运营、企业级系统对接等全场景需求。开发者可二次拓展评论采集、大模型卖点分析、多平台比价等功能,快速搭建一站式京东智能货源分析体系,实现电商运营降本增效。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐