这是目前比价、选品、价格监控 最常用、最稳定、数据最全的组合:京东:jd.item.get(商品详情) 淘宝:taobao.item.get(商品详情)
一、核心接口说明(比价 / 选品必用)
表格
| 平台 | 接口名称 | 核心作用 | 必带参数 | 比价必备字段 |
|---|---|---|---|---|
| 京东 | jd.item.get |
获取商品详情、价格、SKU、图片、促销 | skuId |
标题、价格、主图、销量、规格、促销 |
| 淘宝 | taobao.item.get |
获取商品详情、价格、SKU、店铺、优惠 | num_iid |
标题、价格、主图、库存、优惠券、发货地 |
✅ 这两个接口是跨平台比价系统的基石
二、京东 jd.item.get 完整实战(Python)
功能:输入京东 SKUid,获取比价全量数据
python
运行
import requests
import hashlib
import time
# ===================== 配置信息(替换成你的)=====================
APP_KEY = "你的京东AppKey"
APP_SECRET = "你的京东AppSecret"
SKU_ID = "100012345678" # 商品ID
# ===============================================================
def jd_sign(params, secret):
# 京东签名算法:ASCII排序 + MD5
sorted_str = "".join([f"{k}{v}" for k, v in sorted(params.items())])
sign_str = secret + sorted_str + secret
return hashlib.md5(sign_str.encode()).hexdigest().upper()
# 公共参数
params = {
"method": "jd.item.get",
"app_key": APP_KEY,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"skuId": SKU_ID,
# 比价专用字段(只拿需要的,速度更快)
"fields": "skuId,title,picUrl,price,brandName,sellPoint,shopName,stockState"
}
# 生成签名
params["sign"] = jd_sign(params, APP_SECRET)
# 请求接口
url = "https://api.jd.com/routerjson"
res = requests.post(url, data=params)
data = res.json()
# 输出比价数据
if "result" in data.get("jingdong_item_get_response", {}):
item = data["jingdong_item_get_response"]["result"]
print("===== 京东商品信息(比价用)=====")
print(f"商品ID:{item['skuId']}")
print(f"商品标题:{item['title']}")
print(f"商品图片:{item['picUrl']}")
print(f"当前价格:¥{item['price']}")
print(f"品牌:{item['brandName']}")
print(f"店铺:{item['shopName']}")
print(f"库存状态:{item['stockState']}")
else:
print("调用失败:", data)
三、淘宝 taobao.item.get 完整实战(Python)
功能:输入淘宝商品 ID,获取跨平台比价数据
python
运行
import requests
import hashlib
import time
# ===================== 配置信息(替换成你的)=====================
APP_KEY = "你的淘宝AppKey"
APP_SECRET = "你的淘宝AppSecret"
NUM_IID = "123456789012" # 淘宝商品ID
# ===============================================================
def taobao_sign(params, secret):
# 淘宝签名算法
sorted_str = "".join([f"{k}{v}" for k, v in sorted(params.items())])
sign_str = secret + sorted_str + secret
return hashlib.md5(sign_str.encode()).hexdigest().upper()
# 请求参数
params = {
"method": "taobao.item.get",
"app_key": APP_KEY,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"num_iid": NUM_IID,
# 比价/选品核心字段
"fields": "num_iid,title,price,pic_url,nick,provcity,detail_url"
}
params["sign"] = taobao_sign(params, APP_SECRET)
# 请求接口
url = "https://eco.taobao.com/router/rest"
res = requests.post(url, data=params)
data = res.json()
# 输出比价数据
if "item" in data.get("item_get_response", {}):
item = data["item_get_response"]["item"]
print("===== 淘宝商品信息(比价用)=====")
print(f"商品ID:{item['num_iid']}")
print(f"商品标题:{item['title']}")
print(f"商品图片:{item['pic_url']}")
print(f"价格:¥{item['price']}")
print(f"店铺名:{item['nick']}")
print(f"发货地:{item['provcity']}")
else:
print("调用失败:", data)
四、比价 / 选品系统 最有价值字段(直接用)
京东必拿字段
plaintext
skuId, title, picUrl, price, brandName, shopName, stockState, sellPoint
淘宝必拿字段
plaintext
num_iid, title, pic_url, price, nick, provcity, volume, sales
五、直接做成【跨平台比价功能】(核心代码)
python
运行
def compare_price(jd_sku, tb_num_iid):
jd_data = get_jd_item(jd_sku) # 调用京东接口
tb_data = get_tb_item(tb_num_iid) # 调用淘宝接口
print("\n===== 跨平台比价结果 =====")
print(f"京东价:¥{jd_data['price']} | 店铺:{jd_data['shopName']}")
print(f"淘宝价:¥{tb_data['price']} | 店铺:{tb_data['nick']}")
# 自动判断最低价
if float(jd_data['price']) < float(tb_data['price']):
print("✅ 京东更便宜")
else:
print("✅ 淘宝更便宜")
六、避坑指南(比价系统必看)
-
不要高频狂调用 京东:企业号 80~100 次 / 分钟淘宝:企业号 100 次 / 分钟→ 用定时任务 + 缓存,避免限流
-
只请求需要的字段 用
fields参数筛选,速度更快、更稳定 -
大促期间数据延迟接口比页面慢 1~5 分钟,属于正常现象
-
价格要区分:原价 / 促销价 / 券后价比价系统必须展示清楚,否则用户不信任
