这个问题非常好问对了方向 👍。
不过要注意:淘宝商品详情接口属于阿里巴巴系的私有接口,不提供公开访问(淘宝防爬非常严),所以你不能直接用普通的 HTTP 爬虫请求 item.taobao.com
页面去拿详情数据,会被各种加密参数(_m_h5_tk
, sign, data, t)挡住。
不过我们可以有三种合法、安全的实现方式👇:
一、使用 淘宝开放平台(阿里妈妈/阿里云)官方API
这是最稳定、合规的方式,官方提供商品搜索、详情、推广等API。
官方地址:
常用API接口:
功能 | 接口名 | 说明 |
---|---|---|
商品详情 | taobao.tbk.item.info.get | 获取淘宝客商品详情 |
商品搜索 | taobao.tbk.item.get | 搜索商品列表 |
商品详情(通用) | taobao.tbk.item.info.get | 根据 num_iids 获取商品详情 |
示例:Python 获取商品详情
import requests
import json
import time
import hashlib
# 你的 app_key 和 app_secret 从淘宝开放平台申请
app_key = '你的AppKey'
app_secret = '你的AppSecret'
def sign(params):
# 签名算法(TOP API标准签名)
items = sorted(params.items())
query = app_secret + ''.join(f'{k}{v}' for k, v in items) + app_secret
return hashlib.md5(query.encode('utf-8')).hexdigest().upper()
def get_taobao_item_info(num_iid):
url = "https://eco.taobao.com/router/rest"
params = {
'method': 'taobao.tbk.item.info.get',
'app_key': app_key,
'timestamp': time.strftime("%Y-%m-%d %H:%M:%S"),
'format': 'json',
'v': '2.0',
'sign_method': 'md5',
'num_iids': num_iid,
'session': '', # 不需要授权的接口可以留空
}
params['sign'] = sign(params)
resp = requests.get(url, params=params)
return resp.json()
# 示例:获取一个商品详情
result = get_taobao_item_info("1234567890123")
print(json.dumps(result, indent=2, ensure_ascii=False))
输出示例:
{
"tbk_item_info_get_response": {
"results": {
"n_tbk_item": [
{
"title": "Apple iPhone 15 Pro Max 手机",
"pict_url": "https://img.alicdn.com/...",
"zk_final_price": "8999.00",
"item_url": "https://item.taobao.com/item.htm?id=1234567890123"
}
]
}
}
}
二、使用阿里云的 “淘宝联盟API” 服务(更简单)
阿里云提供的「淘宝客开放平台」API代理服务:
👉 https://market.aliyun.com/products/56928004/cmapi014417.html
直接购买后会得到一个公共的 API Key
,可以像下面这样用:
import requests
url = "https://api.taobaoapi.com/item_get"
params = {
"apikey": "你的APIKey",
"item_id": "1234567890123"
}
res = requests.get(url, params=params)
print(res.json())
输出会包括标题、主图、销量、价格、优惠券等字段。
三、如果你是要自建爬虫调试数据
淘宝详情页的真实数据是在:
https://h5api.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/?data=...
但它有以下问题:
- 需要 _m_h5_tk 与 sign 参数(JS动态生成)
- Cookie 有时效性强(几分钟失效)
- 页面字段全是加密字段名(apiStack, item, skuBase)
这类方式可以用于研究与学习,但不建议用于生产或商用,容易被封禁账号或IP。
推荐总结
需求 | 推荐方案 | 稳定性 | 合规性 |
---|---|---|---|
获取正式商品详情 | ✅ 淘宝开放平台 API | ⭐⭐⭐⭐⭐ | ✅ 官方 |
快速使用测试 | ✅ 阿里云淘宝API代理 | ⭐⭐⭐⭐ | ✅ 合法 |
学习爬虫加密逆向 | ⚙️ 模拟 H5 mtop 接口 | ⭐ | ❌ 高风险 |