通过淘宝 taobao.get接口可轻松获取商品主图(单张主图 + 多轮播主图),该接口个人可申请、权限门槛低、调用简单 ,主图相关字段直接返回高清 URL,无需额外解析,以下是极简实现方案,含核心字段说明、主图提取技巧:
一、核心前提(3 分钟准备)
注册淘宝key并认证,创建应用获取
app_key和app_secret个人账号即可);准备待获取主图的商品 ID(num_iid) (从淘宝商品页 URL 提取,如
https://item.taobao.com/item.htm?id=652874751412后的数字)。
二、核心主图字段(接口直接返回,无需额外处理)
该接口返回** 类主图相关字段**,满足不同展示需求,均为高清 URL(默认像素,可直接访问 / 引用),字段说明如下:
| 字段名 | 含义 | 用途 | 示例 |
|---|---|---|---|
| pic_url | 商品首张主图URL | 商品列表页 / 缩略图展示 | 直接复制即可访问高清图 |
| item_imgs | 商品轮播主图数组 | 商品详情页轮播展示 | 含首张主图 + 其余角度图 |
三、极简代码实现(直接复用,仅需替换 3 个参数)
import requests
import time
import hashlib
import urllib.parse
# ---------------------- 只需替换这3个参数 ----------------------
APP_KEY = "你的key"
APP_SECRET = "你的app_secret"
ITEM_ID = "652874751412" # 要获取主图的商品ID
# -------------------------------------------------------------
def generate_sign(params, app_secret):
"""生成淘宝API签名(固定逻辑,无需修改)"""
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = "&".join([f"{k}={urllib.parse.quote_plus(str(v), 'utf-8')}" for k, v in sorted_params])
sign_str = app_secret + sign_str + app_secret
return hashlib.md5(sign_str.encode()).hexdigest().upper()
def get_taobao_main_img():
"""获取商品首张主图+轮播主图"""
params = {
"app_key": APP_KEY,
"method": "taobao.tbk.item.info.get",
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"v": "2.0",
"format": "json",
"platform": 2, # 2=无线端,主图更适配移动端
"num_iids": ITEM_ID # 支持多ID,逗号分隔如"652874751412,1234567890"
}
# 生成签名
params["sign"] = generate_sign(params, APP_SECRET)
# 调用接口
response = requests.post("https://gw.api.taobao.com/router/rest", data=params, timeout=10)
result = response.json()
# 提取主图
item = result["tbk_item_info_get_response"]["results"]["n_tbk_item"][0]
main_img = item["pic_url"] # 首张主图URL
carousel_imgs = [img["url"] for img in item["item_imgs"]] # 轮播主图URL数组
# 输出结果
print(f"商品首张主图URL:\n{main_img}\n")
print(f"商品轮播主图URL列表(共{len(carousel_imgs)}张):")
for idx, img in enumerate(carousel_imgs, 1):
print(f"{idx}. {img}")
if __name__ == "__main__":
get_taobao_main_img()
四、运行结果示例(直接复制 URL 即可用)
商品首张主图URL:
商品首张主图URL:
https://img.alicdn.com/imgextra/i4/220987654321/O1CN0123456789abcdef_!!220987654321.jpg
商品轮播主图URL列表(共6张):
1. https://img.alicdn.com/imgextra/i4/220987654321/O1CN0123456789abcdef_!!220987654321.jpg
2. https://img.alicdn.com/imgextra/i2/220987654321/O1CN01abcdef12345678_!!220987654321.jpg
3. https://img.alicdn.com/imgextra/i3/220987654321/O1CN01xyz7890abcd123_!!220987654321.jpg
...五、实用技巧(轻松扩展)
1. 批量获取主图
只需将ITEM_ID改为逗号分隔的多商品 ID(如"652874751412,987654321098"),接口单次最多支持20 个商品 ID,批量提取效率拉满。
2. 主图尺寸自定义
淘宝主图 URL 支持按需修改尺寸,在 URL 末尾拼接_nxXy.jpg(X/Y 为像素值),例如:
原图 800×800:
xxx.jpg缩略图 300×300:
xxx_300x300.jpg高清图 1000×1000:
xxx_1000x1000.jpg
3. 主图本地下载
若需将主图保存到本地,添加几行代码即可,示例(下载首张主图):
# 接上面代码,提取main_img后 img_response = requests.get(main_img) with open("淘宝商品主图.jpg", "wb") as f: f.write(img_response.content) print("首张主图已下载到本地!")
六、关键注意事项(避坑 + 合规)
调用频率:个人账号默认1 次 / 秒、10 万次 / 日,轻量获取(单 / 批量)完全够用,无需额外控频;
合规使用:主图可用于选品展示、导购推广、个人分析,不得擅自盗图用于商用(如店铺上架、印刷品),避免侵权;
空值处理:极少数商品无轮播主图,
item_imgs仅返回 1 张(首张主图);商品有效性:若商品下架 / 违规,接口会返回空数据,可添加简单判断:
if not item: print("商品无效,无法获取主图")。
总结
获取淘宝商品主图的核心就是调用淘宝taobao.get接口,提取pic_url(首张)和item_imgs(轮播)字段。