一、接入前准备
- 注册与认证 访问淘宝开放平台/万邦开放平台,使用淘宝账号登录或注册新账号。 完成企业/个人实名认证,提交营业执照或身份证信息。
- 创建应用 登录后进入「控制台」→「应用管理」→「创建应用」。 填写应用名称、类型(如网页/移动应用)、回调地址等基本信息。 提交审核后获取AppKey和AppSecret,务必妥善保存。
- 申请API权限 在应用管理页面,申请商品列表相关接口权限,例如: taobao.item.search(商品搜索) taobao.item_search_shop(按店铺ID获取商品) 等待平台审核(通常1-3个工作日)。
二、API调用流程
1. 生成访问令牌(Access Token)
bash
POST https://oauth.taobao.com/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=YOUR_APPKEY
&client_secret=YOUR_APPSECRET
&code=授权码(用户授权后获取)
&redirect_uri=回调地址
2. 构造API请求
以商品搜索接口taobao.item.search
为例,核心参数如下:
参数 | 必填 | 说明 |
---|---|---|
method | 是 | 接口名称(如taobao.item.search ) |
app_key | 是 | 你的AppKey |
timestamp | 是 | 当前时间戳(格式:YYYY-MM-DD HH:MM:SS) |
format | 是 | 返回格式(推荐json ) |
v | 是 | API版本(如2.0 ) |
sign_method | 是 | 签名方法(md5 或hmac ) |
sign | 是 | 请求签名(按规则生成) |
q | 否 | 搜索关键词(如女装 ) |
cat | 否 | 类目ID(如16,18 表示服装类目) |
page_no | 否 | 页码(默认1 ) |
page_size | 否 | 每页数量(默认20 ,最大100 ) |
sort | 否 | 排序方式(如price_asc 价格升序) |
3. 生成签名(MD5示例)
python
import hashlib
def generate_sign(params, app_secret):
sorted_params = sorted(params.items())
sign_str = app_secret
for k, v in sorted_params:
if k != "sign":
sign_str += f"{k}{v}"
sign_str += app_secret
return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper()
4. 发送HTTP请求(Python示例)
python
import requests
import time
app_key = "YOUR_APPKEY"
app_secret = "YOUR_APPSECRET"
access_token = "YOUR_ACCESS_TOKEN"
url = "https://eco.taobao.com/router/rest"
params = {
"method": "taobao.item.search",
"app_key": app_key,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"sign_method": "md5",
"q": "女装",
"page_no": 1,
"page_size": 50,
"access_token": access_token
}
params["sign"] = generate_sign(params, app_secret)
response = requests.get(url, params=params)
data = response.json()
print(data)
三、响应数据解析
成功响应示例:
json
{
"item_search_response": {
"total_results": 1000,
"items": [
{
"num_iid": "123456789",
"title": "夏季新款连衣裙",
"price": "199.00",
"pic_url": "https://img.alicdn.com/xxx.jpg",
"volume": 200 // 销量
}
]
}
}
四、注意事项
- 调用频率限制:普通应用每分钟≤100次,避免频繁请求。
- 分页处理:通过
page_no
和page_size
遍历全部数据。 - 签名错误:检查
AppSecret
和加密逻辑。 - 权限不足:确认接口权限已申请。
- 数据合规:仅用于合法用途,禁止爬取敏感信息。
五、常见问题
Q1:如何获取店铺所有商品?
- 使用
taobao.item_search_shop
接口,需提供seller_id
(店铺ID)。
Q2:如何按价格排序?
- 设置
sort="price_asc"
(升序)或sort="price_desc"
(降序)。
Q3:如何处理分页?
- 通过page_no和page_size参数控制,例如: scss 体验AI代码助手 代码解读复制代码python for page in range(1, total_pages + 1): data = fetch_shop_products(page=page)
Q4:如何优化调用性能?
- 缓存频繁请求的数据。
- 使用异步请求(如
aiohttp
库)。
六、替代方案
若无淘宝开放平台权限,可考虑:
- 淘宝客API:需申请淘宝客权限,适合推广场景。
- 第三方数据服务:如万邦开放平台(需注意法律风险)。
- 浏览器自动化:模拟用户行为(不推荐,违反淘宝规则)。
通过以上步骤,可合规获取淘宝商品列表数据。具体参数和返回字段以淘宝开放文档/万邦开放API文档为准。