根据淘宝开放平台官方文档及开发者实践,淘宝拍立淘API(taobao.image.search/item_search_img)的完整调用指南如下:
一、接入前准备
-
注册与认证
- 登录淘宝开放平台,完成企业/个人实名认证(需营业执照或身份证)。
- 创建应用(Web/移动端),获取
App Key和App Secret(用于接口签名验证)。 - 开发者等级需达L1级(通过基础考试),在“权限管理”中申请
taobao.image.search或item_search_img接口权限,填写使用场景(如“商品比价”“智能推荐”),审核周期1-3个工作日。
-
图片要求
- 格式:JPG/PNG,大小≤2MB,分辨率建议≥800×800,主体商品占比≥60%,避免水印、遮挡。
- 图片来源:支持淘宝/天猫商品URL,或通过
taobao.picture.upload接口上传本地图片获取URL/ID。
二、接口调用流程
1. 认证与签名生成
-
签名规则(MD5加密):
按ASCII升序排序参数,拼接为App Secret + 参数字符串 + App Secret,计算MD5并转为大写。
Python示例:python import hashlib def generate_sign(params, app_secret): sorted_params = sorted(params.items(), key=lambda x: x[0]) param_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret return hashlib.md5(param_str.encode('utf-8')).hexdigest().upper()
2. 请求构造
-
请求地址:
https://eco.taobao.com/router/rest(推荐)或https://api.taobao.com/imgsearch/item_search_img.do。 -
请求方式:HTTP POST(multipart/form-data)。
-
关键参数:
参数名 必选 说明 app_key是 应用标识 timestamp是 请求时间戳(YYYY-MM-DD HH:MM:SS) sign_method是 固定为 md5image是 图片URL或Base64编码数据 cat否 商品类目ID(如女装:50010788) page否 分页页码(默认1)
3. 响应解析
-
返回格式:JSON,核心字段包括:
json { "image_search_response": { "item_list": { "item": [ { "title": "2025夏季新款连衣裙", "price": "199.00", "pic_url": "https://img.alicdn.com/xxx.jpg", "detail_url": "https://item.taobao.com/item.htm?id=123456789", "match_rate": 0.95, // 相似度评分(0-1) "sales": 2560 } ] }, "total_results": 1 } }
三、代码示例(Python)
python
import requests
import hashlib
import time
def search_by_image(app_key, app_secret, image_url):
url = "https://eco.taobao.com/router/rest"
params = {
"method": "taobao.image.search",
"app_key": app_key,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"sign_method": "md5",
"image": image_url,
"page": 1
}
# 生成签名
sorted_params = sorted(params.items(), key=lambda x: x[0])
param_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret
params["sign"] = hashlib.md5(param_str.encode('utf-8')).hexdigest().upper()
# 发送请求
response = requests.post(url, data=params)
if response.status_code == 200:
return response.json()
else:
raise Exception(f"请求失败:{response.status_code}")
# 调用示例
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
result = search_by_image(app_key, app_secret, "https://example.com/item.jpg")
print(result)
四、限制与注意事项
-
调用频率:免费版QPS≤5,单日调用量有限;商用需购买API套餐(如10万次/月起)。
-
错误处理:
- 错误码
isp.no-permission:权限不足,检查接口权限申请状态。 - 错误码
isp.limit-exceeded:调用频率超限,需添加指数退避重试机制。 - 签名错误:检查参数排序和时间戳(±5分钟有效)。
- 错误码
-
隐私保护:用户图片需匿名化处理(如模糊人脸/车牌),传输使用HTTPS,遵守《个人信息保护法》。
-
合规性:定期关注淘宝开放平台文档更新,避免未授权数据抓取。
五、应用场景
- 电商比价:线下看样,线上比价。
- 智能推荐:结合用户浏览历史,推荐相似商品。
- 竞品分析:监控竞争对手热销款式。
- UGC内容变现:自动识别用户分享图片中的商品,关联淘宝链接。
通过遵循以上指南,开发者可高效集成淘宝拍立淘API,实现以图搜商品的智能功能,提升用户体验与商业价值。建议参考淘宝开放平台API文档页面获取最新规则和示例。