京东商品详情API调用教程:Python 30行代码搞定商品数据采集

admin1个月前京东API95

一、为什么我劝你别再自己写爬虫

做比价、选品、店铺分析、竞品监控的朋友,大概率都经历过这条血泪路:

  1. 写个爬虫抓京东商品页 → 跑两天还行;

  2. 某天突然全是滑块验证、risk 风控页面、请求被限流;

  3. 换 IP、调 headers、解滑块……花的时间比业务本身还多;

  4. 页面改版,XPath/CSS 选择器全部失效,又要重写。

核心问题:爬虫是"对抗",数据接口是"合作"。

使用正规的商品详情数据API(由服务商对接平台官方授权数据通道),好处很直接:

  • 稳定:不会因为页面改版就挂;

  • 合规:走授权数据源,规避法律风险;

  • 省事:一个接口返回结构化字段,不用自己解析 HTML;

  • 数据全:标题、价格、主图、SKU规格、销量、店铺信息一次拿齐。


二、准备工作

对接京东商品详情API,你需要: 点此申请appkey

项说明
AppKey / AppSecret向 API 服务商申请,用于身份认证与签名
接口地址如 api.你的服务商域名.com/jd/item/get(以实际文档为准)
item_id京东商品ID,即商品URL中 item.jd.com/10001204397 的 100012043978
本文代码为通用演示写法,不同服务商的域名、字段名、签名算法略有差异,请以你所接入服务商的 API 文档为准。

三、核心代码:约30行搞定

import time
import hashlib
import requests

APP_KEY = "你的AppKey"
APP_SECRET = "你的AppSecret"
API_URL = "https://api.你的服务商域名.com/jd/item/get"

def sign(params: dict) -> str:
    """参数排序拼接 + 密钥做MD5签名(算法以文档为准)"""
    text = "&".join(f"{k}={params[k]}" for k in sorted(params))
    text += "&key=" + APP_SECRET
    return hashlib.md5(text.encode("utf-8")).hexdigest()

def get_jd_item(item_id: str) -> dict:
    params = {
        "app_key": APP_KEY,
        "timestamp": str(int(time.time())),
        "item_id": item_id,
    }
    params["sign"] = sign(params)
    resp = requests.get(API_URL, params=params, timeout=10).json()
    if resp.get("code") != 0:
        raise RuntimeError(f"接口异常: {resp}")
    return resp["data"]   # 核心商品数据

if __name__ == "__main__":
    data = get_jd_item("100012043978")   # 换成你要采集的商品ID
    print("标题:", data["title"])
    print("价格:", data["price"])
    print("主图:", data["images"][0])
    print("SKU数:", len(data["skus"]))
    for sku in data["skus"][:3]:          # 打印前3个规格
        print("  ", sku["name"], "->", sku["price"])

以上核心逻辑就是:拼参数 → 签名 → 请求 → 解析返回,约30行。批量采集只需在外面套一层循环 + 限速,即可做成自己的选品库。


四、返回数据长什么样

接口返回为 JSON,核心字段示例如下(演示结构):

{
"code"
:
0
,
"data"
:
{
"item_id"
:
"100012043978"
,
"title"
:
"商品标题"
,
"price"
:
99.00
,
"origin_price"
:
129.00
,
"images"
:
[
"主图URL1"
,
"主图URL2"
]
,
"category"
:
"手机配件"
,
"shop_name"
:
"店铺名称"
,
"skus"
:
[
{
"sku_id"
:
"1"
,
"name"
:
"黑色"
,
"price"
:
99.00
,
"stock"
:
500
}
]
,
"sales"
:
12000
}
}
字段含义常见用途
title商品标题上架、比价
price / origin_price现价 / 原价价格监控、利润测算
images主图列表独立站/店铺上架素材
skus规格明细(ID/名称/价格/库存)下单对接、库存同步
sales销量选品判断
shop_name店铺名供应商评估

五、使用中要注意什么

  1. 频控:API 有 QPS 上限,批量采集要加 time.sleep() 限速,超限会被限流或封 Key;

  2. 价格实时性:部分类目价格会随促销变动,做"价格监控"时请以接口返回的实时字段为准,建议缓存 + 定期刷新策略;

  3. 字段按需申请:销量、评价等敏感字段可能需要单独开通权限,先和客服确认;

  4. 错误码处理:常见 code 有参数错误、签名错误、无权限、频控超限,开发时要逐一映射成可读日志,方便排查。


六、写在最后

一句话总结:与其花两周时间维护一个随时可能失效的爬虫,不如用 30 行代码对接商品详情API,把精力省下来放在选品和运营上。

目前市面上有提供京东(及淘宝/天猫/1688/拼多多等)商品数据 API 的服务商,一般都支持按量付费 + 免费测试额度,接入前先测试几个商品,确认字段和数据质量再决定。

如果你也在做电商数据采集或选品工具,欢迎在评论区聊聊你踩过的反爬坑,或在私信里交流接口选型经验。


相关文章

京东商品详情 API 接口实战:从申请权限到 Python 调用,商品标题/价格/SKU 字段全解析

一、先搞清楚:你说的"京东商品数据",到底要哪些字段很多人在搜索引擎里敲下"京东商品详情 API",但真正要的东西差别很大。先把需求对齐,能省掉后面 80% 的...

京东商品sku接口能返回哪些字段数据?(商品价格、主图、规格参数等)

京东商品sku接口能返回哪些字段数据?(商品价格、主图、规格参数等)

 京东item_sku接口是通过商品的skuid获取商品详情数据的,主要包括商品价格、商品标题、规格名称、宝贝链接,商品图片等信息。注册账号可获取京东淘宝API免费测试下面做一个请求示例。以...

京东商品主图详情图自动化抓取方法分享(API:item_get/item_get_desc)

京东商品主图详情图自动化抓取方法分享(API:item_get/item_get_desc)

 编辑item_get_desc-获得京东商品描述公共参数  注册账号即可免费测试 名称 类型 必须 描述...

京东商品评论接口|用API获取商品评论数据实战演示

京东商品评论接口|用API获取商品评论数据实战演示

 编辑jd.item_review获取京东商品评论1、查看API文档,请求参数响应参数、请求示例等请求参数请求参数:num_iid=71619129750&page=1&so...

京东商品主图 & 详情图 API 接口实战开发|电商图片数据合规获取方案

京东商品主图 & 详情图 API 接口实战开发|电商图片数据合规获取方案

在电商数据分析、选品系统、商品采集、跨境分销、反向海淘等业务场景中,稳定获取京东商品主图、详情页图片、sku 规格图、轮播图是核心基础需求。本文从实际开发角度,讲解京东商品图片数据的技术获取难点、自研...

京东工业商品价格详情数据API调用演示

京东工业根据ID取商品详情 API 返回值说明vipmro.item_get公共参数名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥a...

发表评论    

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