当前位置: 首页 > news >正文

1688获得商品类目

一、前置准备(必须完成)

和之前一致,这是调用所有 1688 开放 API 的前提,缺一不可:

  1. 访问1688 开放平台,注册开发者账号并完成实名认证(个人 / 企业均可)。
  2. 创建应用,获取核心凭证:app_key(应用 ID)、app_secret(应用密钥)。
  3. 为应用申请alibaba.category.get接口的调用权限(类目查询专用,免费申请)。
  4. 了解核心规则:接口请求需要生成MD5 签名,时间戳为 13 位毫秒级,避免请求过期。

二、核心实现:获取 1688 商品类目

1. 接口关键信息(聚焦类目获取)
  • 请求地址:https://gw.open.1688.com/openapi/param2/2/portals.open/api/getCategory
  • 请求方式:GET(更简单,适合新手)
  • 数据格式:JSON(返回结果易解析)
  • 频率限制:单应用 QPS≤10,日调用≤5 万次(类目更新慢,建议本地缓存 24 小时以上)
2. 完整 Python 代码(可直接运行)

该代码会拉取全量类目树,并以层级化格式打印,方便你查找目标类目及其 ID。

python

运行

import requests import hashlib import time # ---------------------- 配置区(替换为你自己的凭证) ---------------------- app_key = "你的_app_key" app_secret = "你的_app_secret" # ------------------------------------------------------------------------ # 接口请求地址 category_api_url = "https://gw.open.1688.com/openapi/param2/2/portals.open/api/getCategory" def generate_md5_sign(params, app_secret): """ 生成1688 API要求的MD5签名 规则:app_secret + 按字母序拼接的参数键值对 + app_secret,MD5加密后转大写 """ # 按参数名字母顺序排序 sorted_params = sorted(params.items()) # 拼接参数字符串(无分隔符,直接键值相连) param_str = ''.join([f"{k}{v}" for k, v in sorted_params]) # 构造签名原始字符串 sign_origin = app_secret + param_str + app_secret # 生成MD5签名并转大写 md5_obj = hashlib.md5(sign_origin.encode('utf-8')) return md5_obj.hexdigest().upper() def get_1688_categories(): """ 调用1688接口,获取完整商品类目树 """ # 1. 构造基础请求参数(接口要求的必填参数) base_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. 生成签名并添加到参数中 base_params["sign"] = generate_md5_sign(base_params, app_secret) # 3. 发送GET请求 try: response = requests.get(category_api_url, params=base_params, timeout=30) response.raise_for_status() # 抛出HTTP请求错误(如404、500) return response.json() except requests.exceptions.RequestException as e: print(f"请求失败:{e}") return None def parse_and_print_categories(categories, level=0): """ 递归解析类目树,层级化打印类目信息(名称、ID、层级、是否叶子类目) :param categories: 类目列表(接口返回的children数组) :param level: 类目层级(用于缩进,提升可读性) """ for cat in categories: # 提取核心类目信息 cat_id = cat.get("categoryId", "未知ID") cat_name = cat.get("name", "未知名称") cat_level = cat.get("level", "未知层级") is_leaf = cat.get("isLeaf", False) # 是否为叶子类目(不可再下钻) leaf_tag = "[叶子类目]" if is_leaf else "[可下钻]" # 层级化打印 indent = " " * level print(f"{indent}[L{cat_level}] {cat_name}(ID:{cat_id}){leaf_tag}") # 递归打印子类目 if "children" in cat and cat["children"] and len(cat["children"]) > 0: parse_and_print_categories(cat["children"], level + 1) # ---------------------- 执行主流程 ---------------------- if __name__ == "__main__": # 1. 获取类目数据 category_result = get_1688_categories() if not category_result: print("未获取到类目数据") exit(1) # 2. 解析并打印类目(接口返回数据有固定结构) try: # 提取核心类目列表 category_list = category_result["result"]["categories"] print("=" * 80) print("1688商品类目树(层级化展示,可直接复制目标类目ID)") print("=" * 80) parse_and_print_categories(category_list) except KeyError as e: print(f"解析类目数据失败,缺少字段:{e}") print(f"接口返回完整数据:{category_result}")
3. 代码使用说明
  1. 替换配置区的app_keyapp_secret为你在开放平台获取的真实凭证。
  2. 安装依赖(若未安装):执行pip install requests
  3. 运行代码,控制台会输出层级化的类目列表,示例效果如下:

    plaintext

    [L1] 服装服饰(ID:10000)[可下钻] [L2] 女装(ID:10001)[可下钻] [L3] 上衣(ID:10002)[可下钻] [L4] T恤(ID:10003)[叶子类目] [L4] 衬衫(ID:10004)[叶子类目]
  4. 查找你需要的类目,复制对应的categoryId即可(后续调用榜单、商品列表等接口都会用到)。
4. 关键字段解释(新手必看)
字段名含义实用价值
categoryId类目唯一 ID后续接口的核心入参,必须准确
name类目中文名称用于识别类目,方便人工筛选
level类目层级1 级为顶级类目(如服装服饰),5 级为最细分类目
isLeaf是否为叶子类目true表示该类目无下级子类目,是最细分类,选品时常用

三、常见问题排查

  1. 签名错误(返回 "invalid sign")
    • 检查app_secret是否填写正确(不可多空格、少字符)。
    • 确认参数是否按字母序排序(代码已实现,无需手动修改)。
    • 时间戳是否为 13 位毫秒级(代码中time.time() * 1000已处理)。
  2. 权限不足(返回 403 Forbidden)
    • 未申请alibaba.category.get接口权限,需在开放平台应用的「权限管理」中补充申请并等待审核通过。
  3. 返回数据为空
    • 检查网络连接,或等待几分钟后重试(开放平台偶尔有临时波动)。
    • 确认账号已完成实名认证(未认证账号无法调用接口)。

总结

  1. 获取 1688 商品类目核心是调用alibaba.category.get接口,前提是完成开放平台的账号认证、应用创建和权限申请。
  2. 接口请求必须生成符合规则的 MD5 签名,否则会请求失败。
  3. 类目数据层级化递归解析,核心目标是提取categoryId,为后续调取榜单、商品数据打下基础。
http://www.jsqmd.com/news/329694/

相关文章:

  • 2026年河北营销推广公司权威测评报告:基于百家客户匿名反馈的口碑深度解析
  • 2026年山东营销推广公司推荐:全域增长技术评测,破解品效合一与转化归因痛点
  • 完整教程:51单片机——串口通信(二)
  • Python 中的模块与路径管理
  • 2026年首月河北营销推广公司核心绩效实测:系统稳定性与增长实效的综合绩效推荐
  • 技术分化与效果量化双轮驱动 | 2026年山东营销推广公司TOP5实证研究榜单推荐
  • 技术融合与效果归因双引擎驱动 | 2026江苏营销推广公司TOP5实证研究榜单推荐
  • 2026年河北营销推广公司排名:聚焦B2B与零售行业评测,解决内容生产与精准引流痛点
  • 2026年山东营销推广公司推荐:五大权威评测榜单与全域增长选型终极指南
  • 2026年安徽营销推广公司推荐与排名:基于多场景实战评测,解决效果对赌与成本控制核心痛点
  • 2026年河北营销推广公司权威评测:基于实战效果的五家头部企业深度解析
  • 企业决策指南:四大权威报告交叉验证河北营销推广公司TOP5终极排名与选型指南
  • 2026热门不锈钢容器公司盘点,哪家权威有答案,SW增强型地埋水箱/玻璃钢水箱/人防水箱,不锈钢容器直销厂家联系方式
  • 山东营销推广公司哪家服务好?2026年权威榜单揭晓,品帮科技领跑
  • 2026年安徽营销推广公司权威测评报告:基于百家客户匿名反馈的口碑深度解析
  • 2026年江苏营销推广公司专项甄选报告:头部优质机构全景梳理及专业选型指南
  • 2026年江苏营销推广公司专项测评:选型指引
  • 2 1 Day 4 线段树进阶 2
  • 2026年江苏营销推广公司排名优化服务商深度测评:技术实力与效果转化双维解析
  • 2026年江苏营销推广公司专项甄选报告:头部优质机构全景梳理及专业选型指南。
  • 2026年安徽营销推广公司专项测评及排名报告:权威选型指引
  • MyBatis mapper.xml 文件热加载功能技术实现方案
  • 2026年安徽营销推广公司推荐与评测:聚焦效果对赌与成本控制核心痛点
  • 2026年安徽营销推广公司推荐:五大优选机构技术、运营与效果全维度解析
  • 2026年热销榜单:富媒体展示二维码推荐,助力信息传递新风尚
  • 生成式AI革新多模态信息检索
  • 瑞维美尼Revumenib适应症与用法治疗KMT2A重排复发难治急性白血病的每日两次口服方案
  • 深入解析:【数据结构】【xjtuse】面向考纲学习(上)
  • 【小程序毕设全套源码+文档】基于微信小程序的设计与实现(丰富项目+远程调试+讲解+定制)
  • 玛巴洛沙韦Baloxavir Marboxil:细菌性肺炎风险防控与耐药性监测体系