以下是关于闲鱼商品详情API接口及JSON数据示例的详细解答:
一、闲鱼商品详情API接口核心信息
1. 接口名称与功能
- 接口名称:
Goodfish.item_get
(闲鱼商品详情接口) - 功能:通过商品ID获取闲鱼平台上特定商品的详细信息,包括标题、价格、描述、图片、卖家昵称、商品类别等。
2. 请求方式及地址
- 请求方式:GET
- 请求地址:需通过闲鱼开放平台获取真实地址(示例参考地址:
https://api.xianyu.com/item/detail
或 https://api-gw.onebound.cn/goodfish/item_get/
,具体以官方文档为准)。
3. 请求参数
参数名 | 类型 | 必填 | 说明 |
---|
app_key | String | 是 | 在闲鱼开放平台申请的应用密钥(用于身份验证)。 |
item_id | String | 是 | 闲鱼商品的唯一标识符(可从商品URL中获取)。 |
timestamp | String | 是 | 请求时间戳(格式:YYYY-MM-DD HH:MM:SS ),防止请求重复使用。 |
sign | String | 是 | 根据请求参数和app_secret 生成的签名(确保请求安全性)。 |
4. 签名生成方法
签名用于验证请求合法性,生成步骤如下:
- 排序参数:将请求参数(如
app_key
、item_id
、timestamp
)按字典序排序。 - 拼接字符串:将
app_secret
与排序后的参数拼接成字符串。 - 加密处理:使用MD5算法对拼接后的字符串加密,并转换为大写。
示例代码(Python):
| import hashlib |
| |
| def generate_sign(params, app_secret): |
| sorted_params = sorted(params.items(), key=lambda x: x[0]) |
| sign_str = app_secret |
| for key, value in sorted_params: |
| sign_str += f"{key}{value}" |
| sign_str += app_secret |
| sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper() |
| return sign |
二、JSON数据示例及字段说明
1. 响应数据格式
接口返回JSON格式数据,包含以下核心字段:
| { |
| "status": 200, |
| "message": "成功", |
| "data": { |
| "title": "九成新 iPhone 14", |
| "price": "3500.00", |
| "description": "自用 iPhone 14,使用不到一年,无磕碰划痕,电池健康90%以上。", |
| "images": [ |
| "https://image1.xianyu.com/xxx.jpg", |
| "https://image2.xianyu.com/xxx.jpg" |
| ], |
| "seller_nick": "闲鱼小卖家", |
| "category": "手机" |
| } |
| } |
2. 字段说明
字段名 | 类型 | 说明 |
---|
status | Integer | 响应状态码,200表示成功,其他值表示错误(如400参数错误、500服务器错误)。 |
message | String | 对响应状态的文字描述(如“成功”或具体错误信息)。 |
data | Object | 商品详情数据,包含以下子字段: |
title | String | 商品标题。 |
price | String | 商品价格(单位:元)。 |
description | String | 商品描述(卖家提供的详细信息)。 |
images | Array | 商品图片链接列表(多张图片URL)。 |
seller_nick | String | 卖家昵称。 |
category | String | 商品所属类别(如“手机”“图书”等)。 |
三、使用步骤及注意事项
1. 使用步骤
- 注册开发者账号:注册并登录账号。
- 创建应用:在开发者控制台创建新应用,获取
app_key
和app_secret
。 - 查阅API文档:熟悉接口文档,了解请求参数、返回格式及调用频率限制。
- 发起请求:构造包含必要参数的GET请求,并生成签名。
- 处理响应:解析返回的JSON数据,提取所需信息。
2. 注意事项
- 遵守规范:使用API需遵循闲鱼开放平台的使用规范和协议,禁止违规爬取数据。
- 数据安全:确保传输数据经过加密处理,防止数据泄露。
- 错误处理:需处理网络错误、参数错误等异常情况,确保程序健壮性。
- 速率限制:了解API调用频率限制,避免频繁请求导致IP被封禁。
四、应用场景
- 数据分析:爬取商品信息用于市场趋势分析、竞品研究。
- 自动化交易:实现自动下单、价格监控、库存同步等功能。
- 二次开发:集成商品信息到第三方应用(如比价工具、二手交易平台)。
五、完整代码示例(Python)
| import requests |
| import time |
| import hashlib |
| |
| # 替换为你在闲鱼开放平台申请的 app_key 和 app_secret |
| APP_KEY = "your_app_key" |
| APP_SECRET = "your_app_secret" |
| |
| def generate_sign(params): |
| sorted_params = sorted(params.items(), key=lambda x: x[0]) |
| sign_str = APP_SECRET |
| for key, value in sorted_params: |
| sign_str += f"{key}{value}" |
| sign_str += APP_SECRET |
| return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper() |
| |
| def get_item_detail(item_id): |
| url = "https://api.xianyu.com/item/detail" |
| timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) |
| params = { |
| "app_key": APP_KEY, |
| "item_id": item_id, |
| "timestamp": timestamp |
| } |
| params["sign"] = generate_sign(params) |
| |
| try: |
| response = requests.get(url, params=params) |
| if response.status_code == 200: |
| result = response.json() |
| if result["status"] == 200: |
| return result["data"] |
| else: |
| print(f"请求失败,错误信息:{result['message']}") |
| else: |
| print(f"请求失败,状态码:{response.status_code}") |
| except Exception as e: |
| print(f"发生错误:{e}") |
| return None |
| |
| if __name__ == "__main__": |
| item_id = "1234567890" # 替换为真实的闲鱼商品ID |
| item_detail = get_item_detail(item_id) |
| if item_detail: |
| print(f"商品标题:{item_detail['title']}") |
| print(f"商品价格:{item_detail['price']}") |
| print(f"商品描述:{item_detail['description']}") |
| print(f"商品图片:{', '.join(item_detail['images'])}") |
| print(f"卖家昵称:{item_detail['seller_nick']}") |
| print(f"商品类别:{item_detail['category']}") |