Python采集京东商品详情:基于官方API的规格与价格获取

核心思路 :通过京东开放平台API接口获取商品SKU、规格、价格等核心数据,解析JSON响应实现结构化存储。
技术实现:

  1. API权限申请 :在京东开放平台注册开发者账号,创建应用并申请jd.item.sku.get接口权限,获取AppKey和AppSecret。
  2. 请求参数构建 :
    • 必填参数:method(接口方法)、app_key、skuId(商品ID)、timestamp(时间戳)。
    • 签名生成:将参数按字母排序后拼接AppSecret,通过MD5加密生成签名。
  3. 响应解析 :解析返回的JSON数据,提取basicInfo(商品标题、图片)、price(当前价、原价)、stock(库存)、specs(规格列表)等字段。
    示例代码:

python

复制代码
`import requests, hashlib, time

class JD_API:
    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 sign(self, params):
        sorted_params = sorted(params.items())
        sign_str = self.app_secret
        for k, v in sorted_params:
            sign_str += f"{k}{v}"
        sign_str += self.app_secret
        return hashlib.md5(sign_str.encode()).hexdigest().upper()

    def get_sku_info(self, sku_id):
        params = {
            "method": "jd.item.sku.get",
            "app_key": self.app_key,
            "skuId": sku_id,
            "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
            "v": "2.0"
        }
        params["sign"] = self.sign(params)
        response = requests.get(self.api_url, params=params)
        return response.json()

# 使用示例
api = JD_API("YOUR_APP_KEY", "YOUR_APP_SECRET")
data = api.get_sku_info("123456789")
print(data["jd_item_sku_get_response"]["item"]["price"])`
相关推荐
weixin_307779137 小时前
C++代码实现MATLAB中的dlarray函数功能
开发语言·c++·算法·matlab
一水鉴天10 小时前
映射、哈希表与哈斯图:计算机科学的三种基线 20261003(元宝)
开发语言·人工智能
Frank_refuel10 小时前
C++11之一场名为“搬家”的 C++ 之旅
开发语言·c++
海绵宝宝转agent11 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
小奇不哭11 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
小小龙学IT11 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
Wang's Blog11 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
Elastic 中国社区官方博客12 小时前
将你自己的密钥用于现有 Elastic Cloud 部署
大数据·数据库·elasticsearch·全文检索
2601_9620715712 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
红海云12 小时前
Jev:给智能系统做判断的模型
大数据·数据库·人工智能