闲鱼商品详情数据解析及其API接口系列是针对闲鱼平台商品信息获取与处理的技术方案,旨在通过标准化接口为开发者提供商品详情数据,支持电商比价、数据分析、自动化交易等应用场景。以下从接口功能、数据结构、调用流程及注意事项四个维度进行解析:
一、接口功能与核心数据
闲鱼商品详情API(如goodfish.item_get)允许通过商品ID获取以下核心信息:
商品基础信息
标题(如“iPhone 15 Pro Max 256G 银色 99新”)
分类(如“手机/数码/手机”)、品牌(Apple)、型号(iPhone 15 Pro Max)
价格(当前售价7800.00元,原价9999.00元)、库存状态(在售/已售罄)
交易方式(包邮/自提)、成色(99新)、保修期(剩余3个月官方保修)
商品描述与图片
文本描述(含HTML标签,如“自用iPhone 15 Pro Max,国行正品,无拆无修”)
图片列表(主图、详情图URL数组,如
https://img.xianyu.com/item/1234567890_1.jpg)卖家信息
昵称(如“数码小铺”)、信用等级(极好)、好评率(98%)
历史成交记录(需额外权限)
物流与售后
运费模板(包邮)、退换货政策(7天无理由退货)
配送范围(全国)
互动数据
浏览量(1287次)、收藏数(45次)
发布时间(如“2025-04-25T14:30:00Z”)
二、接口调用流程
注册与权限申请
在闲鱼开放平台注册开发者账号,完成实名认证。
创建应用并获取
app_key和app_secret,用于接口调用身份验证。接口请求参数
必填参数:
item_id(商品唯一ID)、app_key、timestamp(时间戳)。可选参数:
fields(指定返回字段,如title,price,images)、sign(签名,用于验证请求合法性)。签名生成方法
步骤:
Python示例:
pythonimport hashlibdef generate_sign(params, app_secret):sorted_params = sorted(params.items(), key=lambda x: x[0])sign_str = app_secretfor key, value in sorted_params:sign_str += f"{key}{value}"sign_str += app_secretreturn hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()将请求参数按字典序排序(如
app_key、item_id、timestamp)。拼接
app_secret与排序后的参数(如app_secret+app_key+item_id+timestamp+app_secret)。使用MD5算法加密拼接后的字符串,并转换为大写。
发起请求与处理响应
成功响应示例:
json{"code": 200,"message": "成功","data": {"title": "iPhone 15 Pro Max 256G 银色 99新","price": 7800.00,"images": ["https://img.xianyu.com/item/1234567890_1.jpg"],"seller_nick": "数码小铺","category": "手机"}}请求方式:GET或POST,URL示例:
https://api.xianyu.com/item/detail?app_key=YOUR_APP_KEY&item_id=1234567890×tamp=2025-10-20&sign=GENERATED_SIGN
响应数据:JSON格式,包含状态码(
code)、返回消息(message)和商品数据(data)。
三、应用场景与代码示例
电商比价系统
通过调用多个商品的详情API,对比价格、成色、卖家信用等,生成比价报告。
自动化交易工具
监控特定商品的价格波动,当价格低于阈值时自动下单。
Python调用示例
pythonimport requests import time APP_KEY = "YOUR_APP_KEY" APP_SECRET = "YOUR_APP_SECRET" 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, APP_SECRET) try: response = requests.get(url, params=params) if response.status_code == 200: result = response.json() if result["code"] == 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" item_detail = get_item_detail(item_id) if item_detail: print(f"商品标题:{item_detail['title']}") print(f"商品价格:{item_detail['price']}") print(f"商品图片:{', '.join(item_detail['images'])}")
四、注意事项
权限与合规性
需遵守闲鱼开放平台的使用规范,禁止违规爬取数据或用于非法用途。
个人开发者需完成实名认证,企业开发者权限更高。
数据安全与隐私
确保传输数据加密(如HTTPS),防止数据泄露。
用户评论、历史成交记录等敏感信息需额外权限获取。
调用频率限制
闲鱼对API调用频率有限制,避免频繁请求导致IP被封禁。建议采用轮询+缓存策略优化性能。
错误处理
处理网络错误、参数错误等异常情况,如重试机制、日志记录。