- item_get 获得1688商品详情
- item_search 按关键字搜索商品
- item_search_img 按图搜索1688商品(拍立淘)
- item_search_suggest 获得搜索词推荐
- item_fee 获得商品快递费用
- seller_info 获得店铺详情
- item_search_shop 获得店铺的所有商品
在电商运营、数据分析或选品调研中,高效获取 1688 平台商品数据是关键环节。1688 开放平台提供的商品采集 API,能帮助我们合规、稳定地抓取商品信息(如标题、价格、销量、库存等),避免手动采集的低效与违规风险。今天就结合实际操作经验,分享 API 调用的完整流程与避坑要点。
一、调用前的 3 项核心准备
在正式调用 API 前,需完成账号、权限与环境的基础配置,这是确保调用成功的前提。
1. 开通 1688 开放平台账号与 API 权限
- 第一步:进入API开放平台,完成注册即可获取测试key。
- 第二步:创建 “应用”—— 在开放平台控制台点击 “应用管理 - 创建应用”,选择 “自用型应用”(仅自己使用)或 “第三方应用”(给其他商家用),按提示填写应用名称、用途等信息。
- 第三步:申请商品采集相关 API 权限 —— 在 “API 列表” 中找到 “商品信息类” 接口(核心接口如item_search【商品搜索采集】、item_get【单个商品详情采集】),点击 “申请权限”,等待 1688 平台审核(通常 1-3 个工作日,需确保应用用途合规)。
2. 获取关键凭证(AppKey 与 AppSecret)
权限审核通过后,在 “应用详情” 页面可查看两个核心凭证:
- AppKey:应用的唯一标识,调用 API 时需作为参数传递;
- AppSecret:应用的密钥,用于生成签名(防止请求被篡改),需妥善保管,不可泄露给他人。
3. 搭建开发环境
根据自身技术栈选择开发语言(Python、Java、PHP 等均可,此处以常用的 Python 为例),并安装必要工具:
- 安装 Python 环境(3.7 及以上版本);
- 安装请求库:通过命令pip install requests安装requests(用于发送 HTTP 请求);
- 安装数据解析库:通过pip install json(Python 内置,无需额外安装,用于解析 API 返回的 JSON 数据)。
二、API 调用全流程(以 Python 为例)
1688 商品采集 API 调用遵循 “认证→请求→解析” 的逻辑,核心是通过合规的请求参数获取数据,以下以最常用的item_search(商品搜索采集)接口为例演示。
1. 第一步:获取 Access Token(身份认证)
1688 API 采用 OAuth2.0 认证,需先通过AppKey和AppSecret获取Access Token(有效期通常为 2 小时,过期需重新获取)。
- 请求 URL:https://open.1688.com/api/auth/token/get.json
- 请求方式:GET
- 核心参数:
参数名 | 类型 | 说明 | 示例值 |
appKey | String | 应用的 AppKey | 202xxxxxx56 |
appSecret | String | 应用的 AppSecret | 8a6xxxxxxxxx89 |
grantType | String | 授权类型,固定为 “client_credentials” | client_credentials |
- Python 示例代码:
import requests
# 1. 获取Access Token
app_key = "你的AppKey"
app_secret = "你的AppSecret"
token_url = f"https://open.1688.com/api/auth/token/get.json?appKey={app_key}&appSecret={app_secret}&grantType=client_credentials"
response = requests.get(token_url)
token_data = response.json()
# 检查是否获取成功
if token_data.get("code") == 0:
access_token = token_data["data"]["accessToken"]
print(f"Access Token获取成功:{access_token}")
else:
print(f"Token获取失败:{token_data.get('message')}")
exit() # 失败则终止程序
2. 第二步:调用商品采集 API(item_search)
获取Access Token后,即可调用item_search接口,按关键词、分类等条件采集商品数据。
- 请求 URL
-- 请求示例 url 默认请求参数已经URL编码处理
curl -i "https://api-服务器.cn/1688/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=610947572360"
- 请求方式:GET
- 核心参数(需拼接在 URL 中):
参数名 | 类型 | 说明 | 示例值 |
access_token | String | 第一步获取的 Access Token | 7a9xxxxxxxxx12 |
keywords | String | 搜索关键词(如 “连衣裙”) | 连衣裙 |
page | Integer | 页码(从 1 开始) | 1 |
pageSize | Integer | 每页条数(最大 50 条) | 20 |
- Python 示例代码(续上一步):
# 2. 调用item_search接口采集商品数据
search_url = "https://open.1688.com/api/param2/1/com.alibaba.product/alibaba.product.search.json"
params = {
"access_token": access_token,
"keywords": "连衣裙", # 可替换为目标关键词
"page": 1,
"pageSize": 20
}
# 发送请求
search_response = requests.get(search_url, params=params)
product_data = search_response.json()
# 检查请求是否成功
if product_data.get("code") == 0:
# 提取商品列表
products = product_data["data"]["result"]["products"]
print(f"共采集到{len(products)}条商品数据:")
# 解析并打印关键信息(可根据需求调整字段)
for idx, product in enumerate(products, 1):
print(f"\n商品{idx}:")
print(f"商品ID:{product['productId']}")
print(f"商品标题:{product['title']}")
print(f"售价(元):{product['price']}")
print(f"销量(30天):{product['salesCount30D']}")
print(f"供应商:{product['supplier']['supplierName']}")
else:
print(f"商品采集失败:{product_data.get('message')}")
3. 第三步:数据解析与存储
API 返回的是 JSON 格式数据,需根据业务需求提取关键字段(如商品 ID、价格、销量、供应商信息等),并存储到数据库(MySQL、MongoDB)或 Excel 中。
- 示例:将数据存入 Excel(需先安装pandas库:pip install pandas):
import pandas as pd
# 3. 数据存储到Excel
if product_data.get("code") == 0:
# 提取需要的字段
product_list = []
for product in products:
product_info = {
"商品ID": product["productId"],
"标题": product["title"],
"售价": product["price"],
"30天销量": product["salesCount30D"],
"供应商名称": product["supplier"]["supplierName"],
"供应商链接": product["supplier"]["homepageUrl"]
}
product_list.append(product_info)
# 转为DataFrame并保存
df = pd.DataFrame(product_list)
df.to_excel("1688连衣裙商品数据.xlsx", index=False)
print("数据已保存到Excel文件!")
三、调用中的 3 个常见问题与避坑指南
- Access Token 过期(报错 “invalid token”)
解决方案:Token 有效期为 2 小时,需在代码中添加 “过期自动刷新” 逻辑 —— 记录 Token 获取时间,每次调用前检查是否过期,过期则重新请求 Token。
- 请求频率超限(报错 “too many requests”)
解决方案:1688 API 对每个应用有调用频率限制(通常每秒不超过 5 次),需在代码中添加 “延时控制”,如用time.sleep(0.2)(每次请求间隔 0.2 秒);同时避免一次性采集过多数据,可分时段采集。
- 返回数据为空(但参数无错)
解决方案:检查两个点:① 关键词是否太宽泛(如 “衣服”),可缩小范围(如 “夏季女士短袖 T 恤”);② API 权限是否生效(部分权限需审核通过后 1 小时才生效),可在开放平台 “权限管理” 中确认。
四、优化建议:让 API 调用更高效
- 按需采集字段:API 返回字段较多,无需全部提取,仅保留业务所需字段(如选品需 “价格、销量、好评率”),减少数据传输与解析时间。
- 数据去重:若多次采集同一关键词,需通过 “商品 ID” 去重,避免重复存储。
- 异常监控:在代码中添加 “异常捕获” 逻辑(如try-except),当调用失败时自动记录日志(如失败时间、报错信息),方便后续排查。
总结
1688 商品采集 API 调用的核心是 “合规 + 规范”—— 先完成账号与权限配置,再按 “Token 获取→API 请求→数据解析” 流程操作,同时注意规避频率超限、Token 过期等问题。通过 API 采集数据,不仅效率远高于手动复制,还能确保数据的合规性(避免违反 1688 平台规则)。
如果在实操中遇到具体问题(如某接口参数配置、代码报错),可以随时交流,也欢迎分享你的优化经验!