0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

接入1688获得商品类目

来源:jf_57394773 作者:jf_57394773 2026-02-02 11:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

访问1688 开放平台官网,点击右上角「注册 / 登录」,使用支付宝或淘宝账号登录。

登录后进入「开发者中心」,完成实名认证(个人 / 企业均可):

个人认证:上传身份证正反面,完成人脸核验(1-2 个工作日审核通过)。

企业认证:上传营业执照、法人信息,审核周期稍长(1-3 个工作日)。

注意:未完成实名认证的账号,无法创建应用和调用任何接口。

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

实名认证通过后,在开发者中心点击「应用管理」→「创建应用」。

填写应用信息:应用名称(自定义,如「1688 类目查询工具」)、应用描述、应用类型(选择「工具应用」或「第三方应用」,个人开发者选「工具应用」即可)。

提交应用后,等待平台审核(一般 1-2 个工作日),审核通过后,即可在应用详情页获取两个核心凭证:

app_key:应用的唯一标识(类似账号 ID)。

app_secret:应用的密钥(类似密码,严禁泄露给他人,不要硬编码到公开代码中)。

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

进入应用详情页,点击「权限管理」→「申请权限」。

在权限列表中,搜索「alibaba.category.get」(商品类目查询接口),勾选该权限并提交申请。

该接口为免费公开权限,一般提交后即时通过(无需人工审核),通过后即可正常调用。

确认权限:在「已拥有权限」中,能看到「alibaba.category.get」,即表示权限申请成功。

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

前置准备:安装依赖库

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

bash

运行

pip install requests

完整可运行代码

该代码已封装好签名逻辑、请求逻辑和层级化解析逻辑,你只需替换app_key和app_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("


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    2467

    浏览量

    66996
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    通过商品ID调用1688商品评论API

    ​ 在1688开放平台中,获取指定商品的评论数据是常见的业务需求。虽然官方API文档会提供最权威的接口说明,但通常可以通过商品详情相关的API间接或直接获取评论信息。以下是一个通用的技术思路和示例
    的头像 发表于 03-23 16:02 187次阅读
    通过<b class='flag-5'>商品</b>ID调用<b class='flag-5'>1688</b><b class='flag-5'>商品</b>评论API

    如何通过1688开放平台API获取指定店铺所有商品

    ​ 场景需求: 在开发电商ERP、数据采集工具或竞品分析系统时,经常需要获取1688平台上某个店铺的全部商品信息(如标题、价格、SKU、库存等)。本文将介绍如何通过1688开放平台提供的官方API
    的头像 发表于 03-16 17:23 550次阅读
    如何通过<b class='flag-5'>1688</b>开放平台API获取指定店铺所有<b class='flag-5'>商品</b>

    1688 商品详情 API 调用与数据解析 Python 实战

    你想要的是 1688 商品详情 API 的 Python 调用与数据解析实战方案,核心是完成 API 凭证配置、接口请求(含签名)、响应数据解析、异常处理 的全流程落地,我会提供可直接运行的代码,并
    的头像 发表于 02-10 11:23 375次阅读

    调用1688开放平台商品分类API获取分类数据

    如何调用1688的“获取商品分类树”API。 一、 接口简介 API名称: alibaba.category.get 功能描述: 此接口用于获取1688平台的商品类目信息。它可以返回一
    的头像 发表于 02-02 16:19 495次阅读
    调用<b class='flag-5'>1688</b>开放平台<b class='flag-5'>商品</b>分类API获取分类数据

    1688品类API:蓝海市场发现,新机会挖掘!

    ​ 在当今竞争激烈的电商市场中,发现蓝海市场(即未饱和、低竞争高需求的市场)成为企业增长的关键。1688作为阿里巴巴旗下的批发平台,其品类API提供了丰富的商品数据,帮助开发者通过技术手段高效挖掘
    的头像 发表于 01-23 13:39 1463次阅读
    <b class='flag-5'>1688</b><b class='flag-5'>品类</b>API:蓝海市场发现,新机会挖掘!

    1688商品详情API接口使用指南

    1688 商品详情 API 接口系列是阿里巴巴 1688 开放平台(1688 Open Platform)提供的核心 B2B 电商数据接口集合,聚焦
    的头像 发表于 01-17 10:46 2571次阅读

    1688接入API

    1688 API 是阿里巴巴旗下 B2B 批发平台的官方开放接口,基于 RESTful 架构与签名认证,以 JSON 格式提供商品、订单、供应链等全链路数据,核心价值是合规高效赋能采购选品、订单履约
    的头像 发表于 01-16 09:45 519次阅读

    1688品类API:热门行业榜单,选品指南!

    ​ 在电商领域,数据驱动的选品决策至关重要。1688作为阿里巴巴旗下的批发平台,提供了丰富的品类API接口,帮助企业获取实时市场数据,优化产品策略。本文将详细介绍如何利用1688品类A
    的头像 发表于 01-15 17:15 914次阅读
    <b class='flag-5'>1688</b><b class='flag-5'>品类</b>API:热门行业榜单,选品指南!

    1688品类API:市场趋势分析,选品更精准!

    ​ 引言 在竞争激烈的电商市场,精准把握市场脉搏、洞察消费者需求是选品成功的关键。1688平台作为国内领先的批发采购平台,汇聚了海量的商品和供应商数据。通过调用1688开放的品类API
    的头像 发表于 01-05 15:44 409次阅读
    <b class='flag-5'>1688</b><b class='flag-5'>品类</b>API:市场趋势分析,选品更精准!

    1688商品评论API使用指南

    一、前言 1688(阿里巴巴批发网)商品评论 API 是用于获取平台批发商品买家评论数据的核心接口,可支撑供应商口碑评估、商品质量分析、批发市场调研等场景。需明确的是:
    的头像 发表于 12-24 13:30 698次阅读

    1688店铺所有商品API使用指南

    店铺所有商品 API 的使用方法,帮助开发者快速实现接口对接。 一、摘要 1688 店铺所有商品 API 是阿里巴巴开放平台为开发者提供的核心业务接口之一,主要用于查询 1688
    的头像 发表于 12-22 13:49 1295次阅读

    1688商品详情API指南

    一、摘要 1688平台为开发者提供了完整的商品详情API接口,支持获取商品的详细信息、规格参数、价格库存等核心数据。基于您之前了解的工厂数据API,商品详情API进一步深化了数据获取能
    的头像 发表于 12-11 11:09 900次阅读

    如何通过API获取1688平台商品详情

    ​  在电商开发中,获取商品详情是常见的需求,尤其对于1688平台(阿里巴巴旗下的批发采购平台)。通过API接口,开发者可以高效地集成商品数据到自己的应用中。本文将逐步介绍如何通过1688
    的头像 发表于 11-11 14:00 1336次阅读
    如何通过API获取<b class='flag-5'>1688</b>平台<b class='flag-5'>商品</b>详情

    如何通过API获取1688商品类目数据:技术实现指南

    ​  一、接口概述 1688开放平台提供alibaba.category.get接口,支持开发者获取全量商品类目树。该接口采用RESTful架构,返回JSON格式数据,包含以下核心字段
    的头像 发表于 10-22 14:56 557次阅读
    如何通过API获取<b class='flag-5'>1688</b><b class='flag-5'>商品类目</b>数据:技术实现指南

    商品类目属性查询接口技术实现详解

    ​   一、接口核心功能 该接口用于查询电商系统中商品类目的属性信息,支持: 按类目ID查询属性集合 按属性类型过滤(关键属性$K$、销售属性$S$、普通属性$N$) 分页返回属性数据 多语言属性名
    的头像 发表于 10-11 15:43 559次阅读
    <b class='flag-5'>商品类目</b>属性查询接口技术实现详解