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

京东商品属性API数据解析:颜色、尺寸与材质

一、核心API接口与调用流程

  1. 接口选择
    • 商品详情APIjingdong.ware.get 或 jd.item.detail.get,通过商品ID(wareId/sku_id)获取完整属性。
    • 商品搜索APIjingdong.ware.search,通过关键词获取商品列表及基础属性。
    • SKU属性接口:直接查询SKU(如颜色、尺寸组合)的详细参数。
  2. 调用步骤
    • 注册与认证:在京东开放平台注册开发者账号,创建应用获取AppKey和AppSecret,申请商品详情API权限。
    • 构造请求
      • 必填参数:商品ID(如wareId=100060000001)、字段列表(如field=title,price,attributes)。
      • 签名生成:按参数ASCII排序后拼接,首尾加AppSecret,MD5加密(部分接口用HMAC-SHA256)。
      • 请求方式:支持GET/POST,URL示例:https://api.jd.com/routerjson?method=jingdong.ware.get&app_key=XXX&wareId=100060000001...
    • 响应解析:返回JSON结构,核心字段位于wareInfosku_info中。
二、属性字段解析
  1. 颜色(Color)
    • 位置attributes数组或sku_infoattributes字段。
    • 示例

      json

      "attributes": [
      {"name": "颜色", "values": ["红色", "蓝色", "白色"]}
      ]

      json

      "sku_info": [
      {"sku_id": "100012345678", "attributes": "颜色:红色;尺寸:M", "price": "299.00"}
      ]
  2. 尺寸(Size)
    • 位置:同颜色,常与颜色组合在attributes中。
    • 示例

      json

      "attributes": [
      {"name": "尺寸", "values": ["S", "M", "L", "XL"]}
      ]
  3. 材质(Material)
    • 位置attributes或商品描述字段(如desc)。
    • 示例

      json

      "attributes": [
      {"name": "材质", "values": ["棉95%", "涤纶5%"]}
      ]
三、代码实现示例(Python)

python

import requests
import hashlib
import json
class JDAPI:
def __init__(self, app_key, app_secret):
self.app_key = app_key
self.app_secret = app_secret
self.api_url = "https://api.jd.com/routerjson"
def generate_sign(self, params):
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = self.app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + self.app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
def get_item_detail(self, ware_id):
params = {
"method": "jingdong.ware.get",
"app_key": self.app_key,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"wareId": ware_id,
"field": "title,price,attributes"
}
params["sign"] = self.generate_sign(params)
response = requests.get(self.api_url, params=params)
return response.json()
# 使用示例
if __name__ == "__main__":
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
ware_id = "100060000001"
jd_api = JDAPI(app_key, app_secret)
item_data = jd_api.get_item_detail(ware_id)
# 解析颜色、尺寸、材质
if "wareInfo" in item_data:
attributes = item_data["wareInfo"].get("attributes", [])
for attr in attributes:
if attr["name"] == "颜色":
colors = attr.get("values", [])
elif attr["name"] == "尺寸":
sizes = attr.get("values", [])
elif attr["name"] == "材质":
materials = attr.get("values", [])
print(f"颜色: {colors}, 尺寸: {sizes}, 材质: {materials}")
四、注意事项
  1. 权限与限制
    • 部分字段(如销量、评价)需企业认证或付费权限。
    • 调用频率限制:默认100次/分钟,VIP账号可提升至500次/分钟。
    • 需配置IP白名单,避免恶意调用。
  2. 数据结构差异
    • 不同商品类别属性结构可能不同(如服装vs电子产品),需动态解析。
    • 多SKU商品需遍历sku_info数组获取各规格属性。
  3. 合规性
    • 禁止爬虫抓取,必须使用官方API。
    • 敏感信息需脱敏处理,遵循京东数据使用规范。

通过以上流程,可高效获取并解析京东商品的颜色、尺寸和材质属性,适用于电商数据分析、竞品监控等场景。建议定期查阅京东开放平台最新文档,确保接口调用符合规范。

http://www.xdnf.cn/news/20173.html

相关文章:

  • 【代码随想录算法训练营——Day4】链表——24.两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07.链表相交、142.环形链表II
  • 操作系统基本概念.1
  • Day 47 注意力热图可视化
  • 工作后的总结和反思4
  • SQL 入门指南:排序与分页查询(ORDER BY 多字段排序、LIMIT 分页实战)
  • 使用Shell脚本实现Linux系统资源监控邮件告警
  • 永磁同步电机 FOC 控制中 d、q 轴杂谈与角度偏移影响
  • 使用Ansible自动化部署Hadoop集群(含源码)--环境准备
  • 【Android】ViewPager2结合Fragment实现多页面滑动切换
  • 百度竞价推广:搜索竞价信息流推广代运营
  • ElementUI之Upload 上传的使用
  • C++语法之--多态
  • 了解Python
  • Ubuntu:Git SSH密钥配置的完整流程
  • 捷多邦揭秘超厚铜板:从制造工艺到设计关键环节​
  • 让字符串变成回文串的最少插入次数-二维dp
  • 单元测试详解
  • 基于树莓派与Jetson Nano集群的实验边缘设备上视觉语言模型(VLMs)的性能评估与实践探索
  • 【c++进阶系列】:万字详解AVL树(附源码实现)
  • ubuntu 系統使用過程中黑屏問題分析
  • 前端上传切片优化以及实现
  • 基于LLM开发Agent应用开发问题总结
  • equals 定义不一致导致list contains错误
  • SQL面试题及详细答案150道(81-100) --- 子查询篇
  • webrtc弱网-LossBasedBandwidthEstimation类源码分析与算法原理
  • 【Proteus仿真】定时器控制系列仿真——秒表计数/数码管显示时间
  • 【ComfyUI】混合 ControlNet 多模型组合控制生成
  • ANSYS HFSS边界条件的认识
  • 【LeetCode热题100道笔记】二叉树中的最大路径和
  • 9.FusionAccess桌面云