一、接口概述
阿里巴巴平台店铺所有商品接口(get_shop_items)允许开发者通过HTTP请求获取指定店铺内的所有商品信息。该接口可返回商品ID、标题、价格、库存、销量、SKU属性等核心数据,适用于电商数据分析、竞品监控、商品同步等场景。
点击获取key和secret
二、接口参数与签名生成
-
核心请求参数 shop_id:店铺ID(必填) app_key:应用密钥(需在阿里巴巴开放平台申请) timestamp:请求时间戳(精确到秒,防止请求重放) page_size:每页商品数量(默认50,最大支持100) page_no:页码(从1开始) sign:请求签名(用于验证合法性)
-
签名生成步骤 参数排序:将请求参数按ASCII码升序排列。 拼接字符串:格式为key1=value1&key2=value2,末尾追加&secret=your_app_secret。 生成签名:对拼接后的字符串进行MD5加密(默认方式)。 三、Python代码示例
-
依赖库安装 python Copy Code pip install requests
-
完整代码实现 python Copy Code import requests
import hashlib
import time
import urllib.parse
配置信息
app_key = "your_app_key"
app_secret = "your_app_secret"
shop_id = "目标店铺ID"
api_url = "openapi.1688.com/api/get_sho…"
def generate_sign(params, secret):
# 参数排序并拼接
sorted_params = sorted(params.items())
param_str = "&".join([f"{k}{v}" for k, v in sorted_params])
sign_str = param_str + "&secret=" + secret
# MD5加密生成签名
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def get_shop_items():
params = {
"app_key": app_key,
"shop_id": shop_id,
"timestamp": str(int(time.time())),
"page_size": 50,
"page_no": 1,
"format": "json",
"sign_method": "md5"
}
# 生成签名并添加到参数
params["sign"] = generate_sign(params, app_secret)
# 发送请求
response = requests.get(api_url, params=params)
if response.status_code == 200:
data = response.json()
# 解析商品列表
items = data.get("result", {}).get("items", [])
for item in items:
print(f"商品ID:{item['item_id']},标题:{item['title']},价格:{item['price']}")
else:
print("请求失败,状态码:", response.status_code)
if name == "main":
get_shop_items()
四、注意事项 API密钥安全:确保app_key和app_secret保密,避免泄露。 分页处理:需根据返回的total_pages字段循环请求所有页数据。 错误码处理:参考官方文档处理常见错误(如签名错误、参数缺失)。 请求频率限制:避免高频调用触发平台反爬机制。 五、扩展应用场景 商品数据分析:结合销量、价格趋势优化库存策略。 竞品监控:实时抓取竞品店铺商品变动信息。 商品同步:将店铺商品同步至自建ERP系统。