淘宝拍立淘按图搜索API接口基于深度学习与计算机视觉技术,通过解析用户上传的商品图片,在淘宝商品库中实现毫秒级相似商品匹配,并以JSON格式返回商品标题、图片链接、价格、销量、相似度评分等详细信息。
JSON数据返回结构
接口返回的JSON数据通常包含以下核心字段:
json { "items": { "item": [ { "title": "商品标题", "pic_url": "商品图片链接", "price": "商品价格", "promotion_price": "促销价格(如有)", "sales": "商品销量", "num_iid": "商品唯一标识ID", "seller_nick": "卖家昵称", "is_tmall": "是否为天猫商品(true/false)", "area": "发货地区", "detail_url": "商品详情页链接", "similarity_score": 0.95, // 相似度评分(0-1) "skus": [ // SKU列表(可选) { "id": "sku_id_1", "price": "1299.00", "stock": "100", "properties": "颜色:黑色;尺寸:44mm" } ], "images": [ // 商品图片数组(可选) "http://img.example.com/product1.jpg", "http://img.example.com/product2.jpg" ], "promotions": [ // 促销信息(可选) { "type": "满减", "desc": "满2000减200" } ] } ] }, "total_results": 100, // 总结果数 "page_size": 20, // 每页商品数 "page_no": 1 // 当前页码 }
接口调用流程(Python示例)
python import requests import base64 import hashlib import time def search_by_image(app_key, app_secret, image_path): url = "https://eco.taobao.com/router/rest" with open(image_path, "rb") as f: image_data = base64.b64encode(f.read()).decode("utf-8") 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_data": image_data, "cat": "50012066", # 女装类目ID(可选) "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()).hexdigest().upper() response = requests.post(url, data=params) return response.json()
关键参数说明
app_key
:应用标识,用于唯一标识开发者应用。app_secret
:应用密钥,用于签名验证请求合法性。image_data
:Base64编码的图片数据,或图片的URL地址。cat
:可选参数,商品类目ID,用于限定搜索范围。page
:可选参数,分页页码,默认返回第一页数据。
注意事项
- 图片质量:确保图片清晰、无水印、商品主体占比超过60%,建议使用高清图片(≤2MB),支持JPG/PNG格式。
- 异常处理:添加try-catch块捕获网络异常,检查返回的
code
字段(0表示成功),处理常见错误码(如1001:参数错误,2001:系统错误)。 - 调用频率限制:免费版默认QPS≤5,商用需购买API套餐(如10万次/月起),建议实现请求队列和延迟机制,避免频繁请求触发限流。