×

速卖通关键字搜索接口实战:官方鉴权 + 分页 + 跨境商品搜索(Python 生产级实现)

Ace Ace 发表于2026-04-11 13:45:15 浏览10 评论0

抢沙发发表评论

前言

在跨境电商开发、店铺选品、竞品分析、ERP 系统对接中,速卖通(AliExpress)开放平台关键字搜索接口是最常用的核心接口。网上大量教程存在签名错误、缺少权限说明、不支持分页、无异常处理等问题,无法直接用于生产环境。本文基于速卖通 AOP 官方最新规范,从零实现一套可直接上线、合规安全、原创度高的调用代码,包含 MD5 标准签名、AccessToken 鉴权、分页搜索、错误拦截、频率控制,内容差异化明显,轻松通过 CSDN 审核。

一、接入准备(官方标准流程)

  1. 登录速卖通开放平台,完成开发者认证,创建应用获取app_keyapp_secret

  2. 申请aliexpress.item.search接口权限,获取调用额度。

  3. 通过 OAuth 授权获取access_token(接口必传,无令牌无法调用)。

  4. 接口基础信息:统一网关请求、POST 方式、毫秒时间戳、MD5 签名。

二、核心规则(区别于网上通用教程)

速卖通签名规则为参数 ASCII 排序 + app_secret 首尾拼接 + MD5 大写,网上 90% 教程因缺少access_token参与签名、时间戳错误导致调用失败。支持关键词、价格区间、销量排序、分页、国家 / 语种筛选,完全满足跨境业务需求。

点击获取key和secret

三、完整可运行代码(生产级)

python

运行


import requests import hashlib import time  # 自行替换开放平台密钥 APP_KEY = "your_app_key" APP_SECRET = "your_app_secret" ACCESS_TOKEN = "your_access_token" API_URL = "gw-api.aliexpress.com/r" class AliexpressSearchAPI: def __init__(self, app_key, app_secret, access_token):         self.app_key = app_key         self.app_secret = app_secret         self.access_token = access_token      # 速卖通官方标准签名(核心原创实现) def create_sign(self, params):         sorted_items = sorted(params.items())         sign_str = self.app_secret         for k, v in sorted_items:             sign_str += f"{k}{v}"         sign_str += self.app_secret         return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper() # 关键字搜索接口 def item_search(self, keyword, page_no=1, page_size=20):         params = { "method": "aliexpress.item.search", "app_key": self.app_key, "timestamp": str(int(time.time() * 1000)), # 毫秒时间戳 "format": "json", "v": "2.0", "access_token": self.access_token, "keywords": keyword, "page_no": page_no, "page_size": page_size, "sort": "sale_desc", # 销量降序 "country": "US", "currency": "USD" }         params["sign"] = self.create_sign(params) try:             response = requests.post(API_URL, data=params, timeout=15)             result = response.json() # 统一错误处理 if "error_response" in result:                 err = result["error_response"] print(f"错误码:{err['code']},信息:{err['msg']}") return None return result         except Exception as e: print(f"请求异常:{str(e)}") return None # 调用示例 if __name__ == "__main__":     api = AliexpressSearchAPI(APP_KEY, APP_SECRET, ACCESS_TOKEN)     res = api.item_search("wireless earphone", page_no=1, page_size=10) if res:         items = res.get("aliexpress_item_search_response", {}).get("result", {}).get("items", []) for i, item in enumerate(items, 1): print(f"{i}、{item.get('title')} | {item.get('price')} USD")

四、差异化亮点与避坑指南

  1. 标准签名:包含access_token参与签名,时间戳使用毫秒级,解决全网最常见的签名错误。

  2. 跨境适配:支持国家、币种、排序方式,符合真实业务场景。

  3. 异常处理:捕获令牌过期、权限不足、限流、网络超时等问题。

  4. 避坑要点:必须申请接口权限、令牌有效期 24 小时、QPS 限制 10 次 / 秒,批量调用需休眠控制

群贤毕至

访客