一、引言
闲鱼作为阿里巴巴旗下知名的闲置交易平台,汇聚了海量的二手商品资源。这些商品信息对于商家、开发者以及研究人员来说具有极高的价值。商家可以通过分析闲鱼上的商品数据来了解市场动态、把握竞争对手情况;开发者能够将闲鱼商品信息集成到自己的应用中,为用户提供更丰富的服务;研究人员则可以借助这些数据开展消费行为、市场趋势等方面的研究。而闲鱼商品详情 API 接口就为获取这些有价值的数据提供了一种便捷、高效且合规的途径,它允许开发者通过发送特定请求,获取指定闲鱼商品的详细信息,如商品标题、价格、描述、图片等。Tabaoapi2014
二、接口概述
- 接口功能
该接口主要用于获取闲鱼平台上特定商品的详细信息。通过传入商品的唯一标识,接口会返回该商品的各项详细描述,帮助开发者全面了解商品的情况。 - 接口地址
假设接口地址为 c0b.cc/R4rbK2,实际使用时需以第三方数据服务商的真实地址为准。 - 请求方式
通常采用 GET 请求方式,因为获取商品详情属于数据查询操作,GET 方式简洁且符合该场景的需求。 - 请求参数
参数名 类型 是否必填 描述
app_key 字符串 是 开发者在闲鱼开放平台申请的应用密钥,用于身份验证,确保请求的合法性。
item_id 字符串 是 闲鱼商品的唯一标识符,可从商品的 URL 中获取,用于指定要查询的具体商品。
timestamp 字符串 是 请求的时间戳,格式为 YYYY - MM - DD HH:MM:SS,用于防止请求被重复使用和确保数据的时效性。
sign 字符串 是 根据请求参数和 app_secret 生成的签名,保证请求的安全性和数据完整性。 - 响应数据格式
接口返回的数据以 JSON 格式呈现,示例如下: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": "手机"
}
}
status:响应状态码,200 表示请求成功,其他状态码表示不同的错误情况。
message:对响应状态的文字描述。
data:包含具体的商品详情信息,如 title(商品标题)、price(商品价格)、description(商品描述)、images(商品图片链接列表)、seller_nick(卖家昵称)、category(商品所属类别)等。
三、Python 请求示例
python
import requests
import json
import time
import hashlib
封装好的第三方数据商闲鱼平台接口,复制链接获取测试。
demo url=http://c0b.cc/R4rbK2 wechat id:Taobaoapi2014
# 替换为你在闲鱼开放平台申请的 app_key 和 app_secret
APP_KEY = "your_app_key"
APP_SECRET = "your_app_secret"
def generate_sign(params):
"""
生成签名
:param params: 请求参数
:return: 签名
"""
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
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']}")
代码说明
generate_sign 函数:该函数用于生成签名。首先对请求参数按字典序排序,然后将 app_secret 与排序后的参数拼接成一个字符串,最后使用 MD5 算法对该字符串进行加密并转换为大写,得到签名。
get_item_detail 函数:
构造请求参数,包括时间戳和签名。
使用 requests.get 方法发送 GET 请求,将参数作为查询字符串传递。
根据响应状态码和返回的 JSON 数据判断请求是否成功,若成功则返回商品详情数据。
主程序部分:设置要查询的商品 ID,调用 get_item_detail 函数获取商品详情,并打印部分关键信息。
请务必将 your_app_key 和 your_app_secret 替换为你在闲鱼开放平台实际申请到的应用密钥和密钥,同时将 item_id 替换为真实的闲鱼商品 ID。此外,要时刻关注闲鱼官方文档,以确保接口地址、参数要求等信息的准确性。