一、接口概述与时效性说明
速卖通(AliExpress)开放平台提供关键词搜索接口(aliexpress.affiliate.product.query),支持根据关键词、类目、排序规则等参数获取商品列表。
⚠️ 注意:本文基于2025年02月26日的API版本,若后续接口更新请以官方文档为准。
二、准备工作
注册开发者账号:前往速卖通开放平台申请账号并创建应用,获取App Key和App Secret。
安装依赖库:使用Python的requests库发送HTTP请求。
bash
Copy Code
pip install requests
三、Python代码实现
python
Copy Code
import requests
import hashlib
import time
def search_aliexpress_keywords(keyword, app_key, app_secret):
# 基础参数
base_url = "https://api.aliexpress.com/rest"
method = "aliexpress.affiliate.product.query"
timestamp = str(int(time.time() * 1000))
# 签名生成(需替换为你的密钥)
sign_str = f'{method}app_key{app_key}timestamp{timestamp}{app_secret}'
sign = hashlib.md5(sign_str.encode()).hexdigest().upper()
# 请求参数
params = {
"method": method,
"app_key": app_key,
"sign_method": "md5",
"timestamp": timestamp,
"sign": sign,
"keywords": keyword,
"category_ids": "", # 可选类目ID
"sort": "volume_desc", # 按销量排序
"page_size": 20
}
# 发送请求
try:
response = requests.get(base_url, params=params)
response.raise_for_status()
data = response.json()
# 解析结果
if data.get("result"):
products = data["result"]["products"]["product"]
for product in products:
print(f"商品ID: {product['productId']}")
print(f"标题: {product['productTitle']}")
print(f"价格: {product['salePrice']} USD\n")
else:
print("未找到相关商品")
except Exception as e:
print(f"请求失败: {e}")
# 示例调用
search_aliexpress_keywords(
keyword="wireless earphones",
app_key="YOUR_APP_KEY",
app_secret="YOUR_APP_SECRET"
)
四、核心参数说明
参数 描述 示例值
keywords 搜索关键词(支持空格分隔) "wireless earphones"
sort 排序方式(销量/价格/评分) volume_desc
category_ids 类目ID(需提前查询类目树) "12345"
page_size 每页返回商品数量(最大100) 20
五、常见问题与避坑指南
签名错误:确保sign生成的字符串顺序与官方一致,注意app_key和timestamp拼接顺序。
频率限制:免费版API默认限制每秒10次请求,需添加time.sleep()避免触发限流。
数据解析:建议使用try-except处理JSON字段缺失,例如product.get('price', 'N/A')。
六、最佳实践
多关键词搜索:使用keywords参数传递多个关键词(如"bluetooth headphone waterproof")。
分页查询:结合page_no参数实现翻页,获取更多商品数据。