一、接口概述
淘宝拍立淘接口是淘宝开放平台提供的图像搜索服务,允许用户通过上传图片或图片URL,在淘宝商品库中搜索相似商品。其核心功能包括:
- 图像识别:基于深度学习模型(如ResNet、MobileNet)提取图片特征。
- 相似度匹配:通过近似最近邻搜索(ANN)算法快速检索相似商品。
- 结果排序:综合图像相似度、销量、价格等维度返回排序结果。
- 应用场景:电商比价、智能推荐、竞品分析、社交媒体商品识别等。
二、接口调用流程
1. 注册与认证
2. 权限申请
- 在控制台申请
taobao.item_search_img
接口权限,填写使用场景(如商品比价、智能推荐)。
3. 图片上传
- 本地图片:需转换为Base64编码。
- 图片URL:支持淘宝/天猫图片地址,外部地址需先调用上传接口获取URL。
4. 接口调用
- 请求方式:HTTP POST。
- 请求地址:https://eco.taobao.com/router/rest。
- 必选参数: app_key:应用标识。 image:图片数据(Base64编码或URL)。
- 可选参数: cat:商品类目ID(如女装类目ID:50010788)。 sort:排序规则(如price_desc按价格降序)。 page:分页参数(默认每页20条)。
5. 响应处理
- 接口返回JSON格式数据,包含商品标题、价格、销量、链接等信息。
三、参数说明
参数 | 必选 | 说明 |
---|---|---|
app_key | 是 | 应用标识,用于身份验证。 |
image | 是 | 图片数据,支持Base64编码或图片URL。 |
cat | 否 | 商品类目ID,限定搜索范围。 |
sort | 否 | 排序规则(如price_asc 按价格升序)。 |
page | 否 | 分页参数,指定返回结果的页码。 |
四、示例代码
Python示例
python
import requests
import hashlib
import time
import base64
def taobao_image_search(app_key, app_secret, image_path):
# 图片转Base64
with open(image_path, 'rb') as f:
image_data = base64.b64encode(f.read()).decode()
# 构建签名参数
params = {
'method': 'taobao.item.search.img',
'app_key': app_key,
'timestamp': int(time.time()),
'format': 'json',
'v': '2.0',
'image': image_data,
'sign_method': 'md5'
}
# 生成签名
param_str = ''.join([f'{k}{v}' for k, v in sorted(params.items())])
sign = hashlib.md5((app_secret + param_str + app_secret).encode()).hexdigest().upper()
params['sign'] = sign
# 发送请求
response = requests.post(
'https://eco.taobao.com/router/rest',
data=params,
headers={'Content-Type': 'application/x-www-form-urlencoded'}
)
return response.json()
# 使用示例
result = taobao_image_search(
app_key='YOUR_APP_KEY',
app_secret='YOUR_APP_SECRET',
image_path='test.jpg'
)
print(result)
Java示例
java
import com.taobao.api.DefaultTaobaoClient;
import com.taobao.api.TaobaoClient;
import com.taobao.api.request.TbkScPailitaoWidgetConvertRequest;
import com.taobao.api.response.TbkScPailitaoWidgetConvertResponse;
public class PailitaoApiExample {
public static void main(String[] args) {
String url = "https://eco.taobao.com/router/rest";
String appKey = "YOUR_APP_KEY";
String appSecret = "YOUR_APP_SECRET";
String sessionKey = "YOUR_SESSION_KEY";
TaobaoClient client = new DefaultTaobaoClient(url, appKey, appSecret);
TbkScPailitaoWidgetConvertRequest req = new TbkScPailitaoWidgetConvertRequest();
req.setAdzoneId(123L);
req.setRelationId(123L);
req.setSiteId(123L);
req.setType(0L);
try {
TbkScPailitaoWidgetConvertResponse rsp = client.execute(req, sessionKey);
System.out.println(rsp.getBody());
} catch (Exception e) {
e.printStackTrace();
}
}
}
五、注意事项
- 频率限制:免费版接口默认QPS≤5,超出会触发限流,大规模商用需购买API套餐。
- 图片质量:建议使用高清、无水印、无遮挡的商品图片,主体商品占比超过60%。
- 签名验证:参数需按字典序排序,MD5加密生成签名,确保请求合法性。
- 错误处理:添加重试逻辑,处理网络异常、API返回错误码等情况。
- 数据更新:商品数据动态变化,需定期更新和维护获取到的数据。
- 隐私保护:遵守相关法律法规,确保用户上传的图片数据安全。
六、应用场景与案例
- 电商比价:通过图像搜索实现跨平台价格监控。
- 智能推荐:结合用户历史图片生成个性化推荐。
- UGC内容变现:将用户分享的图片自动关联商品链接。
- 线下门店:通过摄像头识别用户拍摄的商品图片,提供购买建议。
通过以上指南,开发者可高效集成淘宝拍立淘接口,实现以图搜商品的功能,提升用户体验和商业价值。