在电商领域,数据的价值不言而喻。阿里巴巴中国站作为国内领先的 B2B 平台,其开放的 1688 关键词搜索 API 为开发者和商家提供了强大的数据获取能力。通过该 API,可以实现商品搜索、数据分析、竞品监控等多种功能。本文将详细介绍如何使用 1688 关键词搜索 API,并通过 Python 实战案例展示其应用。
一、API 接口概述
1.1 接口功能
1688 关键词搜索 API 主要用于根据关键词搜索商品,并返回相关的商品信息。通过该接口,可以获取商品的标题、价格、库存、销量、图片链接等核心字段。此外,该接口还支持分页查询、价格区间筛选、分类筛选等多种功能,能够满足不同场景下的数据获取需求。
1.2 接口地址
https://gw.open.1688.com/openapi/param2/1/com.alibaba.product.search/
1.3 请求方式
支持 HTTP GET 和 POST 方法。

二、开发前准备
2.1 注册账号
前往 1688 开放平台完成企业开发者实名认证,创建应用以获取 App Key 和 App Secret。这是使用 API 的基础,确保你已经完成相关步骤。
2.2 权限申请
在开放平台控制台申请“商品信息查询”类 API 权限,审核周期通常为 1-3 个工作日。
2.3 环境依赖
-
Python 3.6+。
-
Requests 库:用于发送 HTTP 请求。
-
Hashlib 库:用于生成签名。
三、API 请求参数
3.1 公共参数
表格
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
app_key | String | 是 | 应用的 App Key |
sign | String | 是 | 签名,用于验证请求的合法性 |
timestamp | Long | 是 | 时间戳,单位为秒 |
v | String | 是 | API 版本号 |
format | String | 是 | 返回数据格式,通常为 json |
3.2 业务参数
| 参数名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
keywords | String | 是 | 搜索关键词 |
start_price | Long | 否 | 起始价格 |
end_price | Long | 否 | 结束价格 |
cat | Long | 否 | 商品分类 ID |
sort | String | 否 | 排序方式,如 bid(总价)、sale(销量)、credit(信用) |
page_no | Long | 否 | 页码,默认为 1 |
page_size | Long | 否 | 每页条数,默认为 40 |
四、签名生成机制
1688 API 采用 MD5 或 HMAC-SHA1 加密签名验证请求的合法性。以下是 Python 中生成签名的示例代码:
import hashlib
import hmac
import urllib.parse
def generate_sign(params, app_secret):
sorted_params = sorted(params.items())
query_str = urllib.parse.urlencode(sorted_params)
signature = hmac.new(
app_secret.encode('utf-8'),
query_str.encode('utf-8'),
hashlib.sha1
).hexdigest().upper()
return signature
五、API 返回值说明
5.1 返回值结构
API 返回值为 JSON 格式,主要包含以下字段:
| 字段名称 | 类型 | 说明 |
|---|---|---|
status | String | 请求状态,如 success 或 fail |
data | List | 商品列表 |
total_results | Long | 搜索结果总数 |
page_no | Long | 当前页码 |
page_size | Long | 每页条数 |
5.2 商品字段
每条商品数据包含以下字段:
| 字段名称 | 类型 | 说明 |
|---|---|---|
product_id | Long | 商品 ID |
title | String | 商品标题 |
price | Float | 商品价格 |
pic_url | String | 商品主图链接 |
sale_num | Long | 商品销量 |
stock | Long | 商品库存 |
六、Python 实战案例
6.1 构造请求并发送
以下是完整的 Python 代码示例,展示如何调用 1688 关键词搜索 API 并解析返回值:
import requests
import hashlib
import time
# 配置信息
APP_KEY = "YOUR_APP_KEY"
APP_SECRET = "YOUR_APP_SECRET"
KEYWORD = "女装"
# 生成签名
def generate_sign(params, secret):
sorted_params = sorted(params.items())
sign_str = "&".join([f"{k}{v}" for k, v in sorted_params if k != "sign"])
sign = hashlib.md5((sign_str + secret).encode('utf-8')).hexdigest().upper()
return sign
# 发送请求
def search_products(keyword, page_no=1, page_size=40):
url = "https://gw.open.1688.com/openapi/param2/1/com.alibaba.product.search/"
params = {
"method": "com.alibaba.product.search",
"app_key": APP_KEY,
"keywords": keyword,
"page_no": page_no,
"page_size": page_size,
"timestamp": int(time.time()),
"v": "2.0",
"format": "json"
}
params["sign"] = generate_sign(params, APP_SECRET)
response = requests.get(url, params=params)
return response.json()
# 解析返回值
def parse_response(response):
if response.get("status") == "success":
products = response.get("data", [])
for product in products:
print(f"商品标题: {product['title']}")
print(f"商品价格: {product['price']}")
print(f"商品链接: {product['pic_url']}")
print("-" * 30)
else:
print("请求失败:", response.get("message"))
# 调用示例
response = search_products(KEYWORD)
parse_response(response)
6.2 数据分析与应用
通过上述代码,你可以获取到大量商品数据,并用于以下场景:
-
竞品监控:定期抓取竞争对手的商品数据,分析价格变化、库存变化等。
-
选品分析:根据关键词搜索结果,统计热门商品类目、价格区间分布,为采购决策提供参考。
-
价格波动监控:设置价格阈值,当商品价格发生变化时及时告警。
七、注意事项
-
API 调用频率限制:1688 对 API 的调用频率有限制,通常为每秒 1-2 次。在开发中需合理控制请求频率。
-
数据安全:确保在处理敏感信息时遵守相关隐私和安全法规。
-
错误处理:在代码中加入异常处理逻辑,避免因网络问题或参数错误导致程序崩溃。
八、总结
本文详细介绍了阿里巴巴 1688 关键词搜索 API 的使用方法,包括接口参数、签名生成、返回值解析以及 Python 实战案例。通过该 API,开发者可以轻松获取商品数据,并应用于多种电商场景。希望本文能帮助你更好地利用 1688 数据,提升业务效率。
如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。

1045

被折叠的 条评论
为什么被折叠?



