Python爬取咸鱼Goodfish店铺所有商品接口的详细指南
在电商数据分析和市场研究中,爬取咸鱼店铺内的所有商品信息是一项极具价值的任务。通过调用咸鱼的goodfish.item_search_shop
接口,可以获取指定店铺内的商品列表,包括商品标题、价格、图片链接、销量等详细信息。本文将详细介绍如何使用Python实现这一目标,并提供完整的代码示例和解析。
一、接口概述
goodfish.item_search_shop
接口允许开发者通过店铺ID获取店铺内的所有商品信息。该接口返回的数据格式为JSON,支持分页功能,便于处理大量数据。
接口地址
https://api-gw.onebound.cn/goodfish/item_search_shop/
参数说明
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
key | String | 是 | API调用Key |
shop_id | String | 是 | 店铺ID |
page | Integer | 否 | 当前页码,默认为1 |
pageSize | Integer | 否 | 每页显示的商品数量,默认为20 |
cache | String | 否 | 是否使用缓存数据,默认为yes |
lang | String | 否 | 返回数据的语言,默认为zh-CN |
返回值说明
返回的JSON数据中,data
字段包含商品列表,每条商品信息包括以下字段:
-
num_iid
:商品ID -
title
:商品标题 -
price
:商品价格 -
pic_url
:商品图片链接 -
sale_num
:销量
二、Python爬虫实现
1. 安装依赖
在开始之前,需要安装requests
库,用于发送HTTP请求。如果尚未安装,可以通过以下命令安装:
bash
pip install requests
2. 调用接口
以下是一个完整的Python代码示例,用于调用goodfish.item_search_shop
接口并解析返回数据:
Python
import requests
def get_shop_items(shop_id, page=1, page_size=20):
"""
调用Goodfish接口获取店铺内所有商品信息
:param shop_id: 店铺ID
:param page: 当前页码
:param page_size: 每页显示的商品数量
:return: 商品列表
"""
url = "https://api-gw.onebound.cn/goodfish/item_search_shop/"
params = {
"key": "YOUR_API_KEY", # 替换为你的API Key
"shop_id": shop_id,
"page": page,
"pageSize": page_size,
"cache": "no",
"lang": "zh-CN"
}
response = requests.get(url, params=params)
return response.json()
def parse_items(data):
"""
解析接口返回的商品数据
:param data: 接口返回的JSON数据
:return: 商品信息列表
"""
items = []
if data["code"] == 200:
for item in data["data"]["items"]["item"]:
items.append({
"商品ID": item["num_iid"],
"标题": item["title"],
"价格": item["price"],
"图片链接": item["pic_url"],
"销量": item["sale_num"]
})
return items
# 示例:获取店铺商品信息
shop_id = "123456789" # 替换为实际店铺ID
result = get_shop_items(shop_id, page=1, page_size=20)
if result["code"] == 200:
items = parse_items(result)
for item in items:
print(item)
else:
print(f"请求失败: {result['message']}")
3. 返回数据示例
接口返回的JSON数据示例如下:
JSON
{
"code": 200,
"message": "调用成功",
"data": {
"items": {
"item": [
{
"num_iid": "123456789",
"title": "二手iPhone 14",
"price": "3500.00",
"pic_url": "https://example.com/image.jpg",
"sale_num": 10
},
{
"num_iid": "987654321",
"title": "小米手机",
"price": "1500.00",
"pic_url": "https://example.com/image2.jpg",
"sale_num": 5
}
]
}
}
}
三、数据存储
获取到的商品信息可以存储到CSV文件中,便于后续分析。以下是一个示例代码:
Python
import csv
def save_items_to_csv(items, filename="shop_items.csv"):
"""
将商品信息保存到CSV文件
:param items: 商品信息列表
:param filename: 输出文件名
"""
with open(filename, "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["商品ID", "标题", "价格", "图片链接", "销量"])
writer.writeheader()
writer.writerows(items)
# 示例:保存商品信息
items = parse_items(result)
save_items_to_csv(items)
print(f"商品信息已保存到 {filename}")
四、注意事项
1. 接口调用频率限制
咸鱼接口对调用频率有限制,频繁调用可能导致IP被封禁。建议合理控制请求频率,或者使用代理IP。
2. 数据隐私保护
严格遵守咸鱼平台的API使用条款,保护用户隐私和数据安全。
3. 错误处理
在实际应用中,建议添加详细的错误处理逻辑,以便在接口调用失败时记录日志并进行重试。
五、总结
通过goodfish.item_search_shop
接口,开发者可以高效地获取咸鱼店铺内的所有商品信息,并将其应用于数据分析、市场研究或个性化推荐等场景。本文提供了完整的Python实现代码,帮助读者快速上手。希望本文能为你的项目提供有价值的参考。
如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。