news 2026/4/15 19:15:54

接入1688获得商品类目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
接入1688获得商品类目

一、核心前提:1688 开放平台接入(必须完成)

这是所有接口调用的基础,没有完成这一步,后续代码无法正常运行。

步骤 1:注册并实名认证开发者账号

  1. 访问1688 开放平台官网,点击右上角「注册 / 登录」,使用支付宝或淘宝账号登录。
  2. 登录后进入「开发者中心」,完成实名认证(个人 / 企业均可):
    • 个人认证:上传身份证正反面,完成人脸核验(1-2 个工作日审核通过)。
    • 企业认证:上传营业执照、法人信息,审核周期稍长(1-3 个工作日)。
    • 注意:未完成实名认证的账号,无法创建应用和调用任何接口。

步骤 2:创建应用,获取接口凭证

  1. 实名认证通过后,在开发者中心点击「应用管理」→「创建应用」。
  2. 填写应用信息:应用名称(自定义,如「1688 类目查询工具」)、应用描述、应用类型(选择「工具应用」或「第三方应用」,个人开发者选「工具应用」即可)。
  3. 提交应用后,等待平台审核(一般 1-2 个工作日),审核通过后,即可在应用详情页获取两个核心凭证:
    • app_key:应用的唯一标识(类似账号 ID)。
    • app_secret:应用的密钥(类似密码,严禁泄露给他人,不要硬编码到公开代码中)。

步骤 3:申请类目接口调用权限

  1. 进入应用详情页,点击「权限管理」→「申请权限」。
  2. 在权限列表中,搜索「alibaba.category.get」(商品类目查询接口),勾选该权限并提交申请。
  3. 该接口为免费公开权限,一般提交后即时通过(无需人工审核),通过后即可正常调用。
  4. 确认权限:在「已拥有权限」中,能看到「alibaba.category.get」,即表示权限申请成功。

二、技术落地:调用接口获取商品类目(Python 版)

前置准备:安装依赖库

本次实现仅需一个requests库(用于发送 HTTP 请求),打开终端执行以下命令安装:

bash

运行

pip install requests

完整可运行代码

该代码已封装好签名逻辑、请求逻辑和层级化解析逻辑,你只需替换app_keyapp_secret即可运行。

python

运行

import requests import hashlib import time # ---------------------- 配置区(替换为你自己的应用凭证) ---------------------- # 从1688开放平台应用详情页获取的app_key和app_secret APP_KEY = "你的_app_key" APP_SECRET = "你的_app_secret" # ---------------------------------------------------------------------------- # 1688商品类目接口地址(固定不变) CATEGORY_API_URL = "https://gw.open.1688.com/openapi/param2/2/portals.open/api/getCategory" def generate_1688_sign(params, app_secret): """ 生成1688 API要求的MD5签名(核心步骤,签名错误会导致请求失败) 签名规则:app_secret + 按字母序拼接的参数键值对 + app_secret → MD5加密 → 转大写 """ # 1. 按参数名进行字母序排序(1688接口强制要求,否则签名无效) sorted_param_items = sorted(params.items()) # 2. 拼接参数字符串(无分隔符,直接键值相连,如"app_key123timestamp1699999999999") param_concat_str = ''.join([f"{key}{value}" for key, value in sorted_param_items]) # 3. 构造完整的签名原始字符串 sign_raw_str = app_secret + param_concat_str + app_secret # 4. 生成MD5签名并转大写 md5_hash = hashlib.md5(sign_raw_str.encode("utf-8")) return md5_hash.hexdigest().upper() def get_1688_product_categories(): """ 调用1688接口,获取完整的商品类目树数据 """ # 1. 构造接口必填参数(参数名和取值均为1688接口固定要求,不可修改) request_params = { "method": "alibaba.category.get", # 接口方法名,固定不变 "app_key": APP_KEY, # 你的应用ID "timestamp": str(int(time.time() * 1000)), # 13位毫秒级时间戳(防止请求过期) "format": "json", # 返回数据格式,固定为json "v": "2.0", # 接口版本,固定为2.0 "sign_method": "md5" # 签名方式,固定为md5 } # 2. 生成签名并添加到请求参数中 request_params["sign"] = generate_1688_sign(request_params, APP_SECRET) # 3. 发送GET请求(类目接口支持GET,更简单易操作) try: # 发送请求,设置30秒超时(防止网络卡顿导致程序挂起) response = requests.get(CATEGORY_API_URL, params=request_params, timeout=30) # 检查HTTP请求状态码(200表示请求成功,非200抛出异常) response.raise_for_status() # 解析返回的JSON数据并返回 return response.json() except requests.exceptions.RequestException as e: print(f"❌ 请求类目接口失败:{str(e)}") return None def print_category_tree(categories, level=0): """ 递归打印类目树(层级化展示,方便查找目标类目ID) :param categories: 类目列表(接口返回的children数组) :param level: 类目层级(用于缩进,提升可读性) """ for category in categories: # 提取类目核心信息(使用get方法,防止字段缺失导致程序报错) cat_id = category.get("categoryId", "未知ID") cat_name = category.get("name", "未知名称") cat_level = category.get("level", "未知层级") is_leaf = category.get("isLeaf", False) # 是否为叶子类目(无下级子类目) # 构造叶子类目标签 leaf_tag = "【叶子类目】" if is_leaf else "【可下钻】" # 构造层级缩进(每级增加2个空格) indent = " " * level # 打印类目信息 print(f"{indent}[{cat_level}级] {cat_name}(ID:{cat_id}){leaf_tag}") # 递归打印子类目(如果当前类目有子类目) if "children" in category and category["children"]: print_category_tree(category["children"], level + 1) # ---------------------- 主程序入口 ---------------------- if __name__ == "__main__": print("🚀 开始获取1688商品类目数据...") print("=" * 80) # 1. 调用接口获取类目数据 category_data = get_1688_product_categories() if not category_data: print("❌ 未获取到有效类目数据,请检查配置和网络后重试") exit(1) # 2. 解析并打印类目树 try: # 提取类目列表(1688接口返回数据有固定结构:result → categories) category_list = category_data["result"]["categories"] print("✅ 成功获取类目数据,类目树如下:") print("=" * 80) print_category_tree(category_list) except KeyError as e: print(f"❌ 解析类目数据失败,缺少核心字段:{str(e)}") print(f"📌 接口返回完整数据:{category_data}")

代码使用步骤

  1. 替换代码中「配置区」的APP_KEYAPP_SECRET为你在开放平台获取的真实凭证(复制粘贴,不要多空格、少字符)。
  2. 打开终端,切换到该代码文件所在目录。
  3. 执行代码:python 文件名.py(如python 1688_category.py)。
  4. 查看控制台输出,即可看到层级化的类目树,找到你需要的类目并复制其categoryId

运行效果示例

plaintext

🚀 开始获取1688商品类目数据... ================================================================================ ✅ 成功获取类目数据,类目树如下: ================================================================================ [1级] 服装服饰(ID:1031900)【可下钻】 [2级] 女装(ID:1031918)【可下钻】 [3级] 上衣(ID:1031919)【可下钻】 [4级] T恤(ID:1031920)【叶子类目】 [4级] 衬衫(ID:1031921)【叶子类目】 [3级] 下装(ID:1031922)【可下钻】 [4级] 裤子(ID:1031923)【叶子类目】

三、常见问题排查(新手高频踩坑)

  1. 签名错误(返回「invalid sign」或「签名无效」)

    • 核对APP_SECRET是否填写正确(开放平台复制时,避免复制到前后空格)。
    • 确认时间戳是 13 位毫秒级(代码中int(time.time() * 1000)已处理,无需修改)。
    • 检查参数是否按字母序排序(代码已封装该逻辑,无需手动干预)。
  2. 权限不足(返回 403 Forbidden 或「无权调用该接口」)

    • 确认已申请alibaba.category.get接口权限,且权限状态为「已通过」。
    • 确认应用已审核通过(未通过的应用无法调用任何接口)。
  3. 返回数据为空或解析失败(缺少「result」或「categories」字段)

    • 检查网络连接是否正常,可尝试访问其他网站验证。
    • 查看控制台输出的「接口返回完整数据」,确认是否为平台返回的错误信息(如凭证过期、频率超限)。
    • 确认账号已完成实名认证(未实名认证账号无法获取有效数据)。
  4. 接口频率超限(返回「request too frequent」)

    • 1688 类目接口限制单应用 QPS≤10、日调用≤5 万次。
    • 类目数据更新缓慢(一般 24 小时更新一次),建议将获取到的类目数据本地缓存(如保存为 JSON 文件),避免重复调用接口。

四、后续扩展(获取类目后的常用操作)

  1. 本地缓存类目数据:将获取到的类目数据保存为1688_categories.json文件,后续直接读取文件,无需重复调用接口。
  2. 关键字筛选类目:添加搜索功能,根据类目名称快速查找目标categoryId(如输入「女装」,直接筛选出相关类目)。
  3. 对接商品榜单接口:使用获取到的categoryId,调用product.topList.query接口,获取对应类目的商品榜单(即你之前关注的需求)。

总结

  1. 接入 1688 商品类目核心是完成「开放平台实名认证→创建应用→获取凭证→申请接口权限」这四步前置准备。
  2. 接口调用的关键是生成符合规则的 MD5 签名,参数必须按字母序排序,时间戳为 13 位毫秒级。
  3. 运行代码后,层级化打印的类目树中,categoryId是后续所有相关接口的核心入参,需妥善保存。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 1:54:27

解锁AI力量:免费与付费AIGC工具平台的10大方案解析

�� 10大降AIGC平台核心对比速览 排名 工具名称 降AIGC效率 适用场景 免费/付费 1 askpaper ⭐⭐⭐⭐⭐ 学术论文精准降AI 付费 2 秒篇 ⭐⭐⭐⭐⭐ 快速降AIGC降重 付费 3 Aibiye ⭐⭐⭐⭐ 多学科论文降AI 付费 4 Aicheck ⭐⭐⭐⭐…

作者头像 李华
网站建设 2026/4/3 16:08:42

前端萌新别慌:用HTML+CSS画个会跳动的心,表白神器速成!

前端萌新别慌:用HTMLCSS画个会跳动的心,表白神器速成!前端萌新别慌:用HTMLCSS画个会跳动的心,表白神器速成!先泼点冷水:这玩意儿其实土得掉渣心形到底怎么"画"出来的?几何…

作者头像 李华
网站建设 2026/4/13 17:47:36

计算机毕业设计之基于Python的疫情数据分析系统

伴随着互联网时代的到来,使得传统产业和互联网相结合迸发出惊人的能量。计算机硬件的快速发展和网络的普及导致疫情数据分析系统中的大数据呈现爆炸式增长,大数据可视化分析对疫情数据分析也具有重要的意义。疫情数据分析系统和可视化展示二者是相辅相成…

作者头像 李华
网站建设 2026/4/7 19:45:37

springboot基于手机客户端的酒店预订系统的设计与实现-开题报告

目录 系统背景与意义技术选型依据核心功能模块创新点设计预期成果 项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 系统背景与意义 随着移动互联网普及,酒店预订需求从PC端转向手机端。传统酒…

作者头像 李华
网站建设 2026/4/11 19:33:53

在线考试系统选择指南:关键维度解析与企业实践参考

当下,无论是教育机构、企业内训还是资格认证,在线考试已成为一种高效、便捷的评估方式。面对市场上众多的解决方案,如何甄选出一套稳定、安全且符合自身需求的在线考试系统?本文将从关键评估维度出发,为您的决策提供清…

作者头像 李华