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 前,需完成账号、权限与环境的基础配置,这是确保调用成功的前提。
- 开通 1688 开放平台账号与 API 权限 第一步:进入API开放平台,完成注册即可获取测试key。 第二步:创建 “应用”—— 在开放平台控制台点击 “应用管理 - 创建应用”,选择 “自用型应用”(仅自己使用)或 “第三方应用”(给其他商家用),按提示填写应用名称、用途等信息。 第三步:申请商品采集相关 API 权限 —— 在 “API 列表” 中找到 “商品信息类” 接口(核心接口如item_search【商品搜索采集】、item_get【单个商品详情采集】),点击 “申请权限”,等待 1688 平台审核(通常 1-3 个工作日,需确保应用用途合规)。
- 获取关键凭证(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(商品搜索采集)接口为例演示。
- 第一步:获取 Access Token(身份认证) 1688 API 采用 OAuth2.0 认证,需先通过AppKey和AppSecret获取Access Token(有效期通常为 2 小时,过期需重新获取)。
请求 URL:open.1688.com/api/auth/to… 请求方式: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"open.1688.com/api/auth/to…"
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() # 失败则终止程序
- 第二步:调用商品采集 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 = "open.1688.com/api/param2/…"
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')}")
- 第三步:数据解析与存储 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 平台规则)。
如果在实操中遇到具体问题(如某接口参数配置、代码报错),可以随时交流,也欢迎分享你的优化经验!