
唯品会数据采集,优先走合规第三方 API (个人 / 企业均可);企业可申请官方开放平台 API(仅限合作方)。
一、合规路径选择(必看)
1. 官方开放平台(企业级)
- 入口:唯品会开放平台
- 适用:企业 / 商家 / 供应链合作方,个人无法申请
- 核心接口(需审核):
vip.item.get:商品详情(价格、库存、规格、折扣)item.search:商品搜索(关键词、分类、品牌)comment.query:商品评论(评分、内容)
- 流程:企业认证 → 创建应用 → 申请权限 → 获取
AppKey/AppSecret→ 签名调用
2. 第三方合规 API(个人 / 企业通用,推荐)
- 优势:无需企业资质、秒级开通、开箱即用
- 核心能力:商品搜索、详情、价格、库存、评论、活动
- 风险:严禁爬虫,仅用合规 API
二、第三方 API 对接实战(Python)
以API 唯品会商品 API为例,完整可运行代码。
步骤 1:注册并获取密钥
- 访问API→ 注册 → 实名认证
- 搜索「唯品会商品 」,找到「唯品会商品详情查询」
- 领取免费额度 → 复制
API Key
步骤 2:Python 代码实现
python
运行
import requests
import json
def get_vip_product_detail(goods_id):
"""
调用第三方API获取唯品会商品详情
:param goods_id: 唯品会商品ID(链接中goodsId=后的数字)
:return: 商品信息字典
"""
# 配置(替换为你的信息)
api_url = "https://eolink.o.apispace.com/vip-goods/detail"
headers = {
"X-APISpace-Token": "你的API Key", # 替换
"Authorization-Type": "apikey",
"Content-Type": "application/x-www-form-urlencoded"
}
data = {"goodsId": goods_id}
try:
resp = requests.post(api_url, headers=headers, data=data, timeout=10)
if resp.status_code == 200:
res = resp.json()
if res.get("code") == 200:
data = res.get("data", {})
return {
"商品ID": goods_id,
"商品名称": data.get("goodsName"),
"品牌": data.get("brandName"),
"现价": data.get("salePrice"),
"原价": data.get("marketPrice"),
"折扣": data.get("discount"),
"库存": data.get("stock"),
"分类": f"{data.get('cat1stName')}>{data.get('cat2ndName')}",
"主图": data.get("mainPic"),
"活动": data.get("activityName")
}
else:
print(f"API错误:{res.get('msg')}")
else:
print(f"请求失败:{resp.status_code} {resp.text}")
except Exception as e:
print(f"异常:{e}")
return None
# 测试
if __name__ == "__main__":
goods_id = "1710613157" # 替换为真实商品ID
info = get_vip_product_detail(goods_id)
if info:
print(json.dumps(info, ensure_ascii=False, indent=2))
步骤 3:商品搜索 API(比价必备)
python
运行
def search_vip_products(keyword, page=1, page_size=20):
"""唯品会商品搜索"""
api_url = "https://eolink.o.apispace.com/vip-goods/search"
headers = {
"X-APISpace-Token": "你的API Key",
"Authorization-Type": "apikey",
"Content-Type": "application/x-www-form-urlencoded"
}
data = {
"keyword": keyword,
"page": page,
"pageSize": page_size
}
resp = requests.post(api_url, headers=headers, data=data)
return resp.json()
# 搜索示例
# search_vip_products("羽绒服")
三、官方 API 对接(企业版)
1. 认证与密钥
- 注册 → 企业认证 → 创建应用 → 获取
AppKey/AppSecret - 采用 OAuth2.0 或 MD5 签名 认证
2. 签名规则(官方)
- 所有参数(不含
sign)按ASCII 升序排序 - 拼接为
key1=value1&key2=value2 - 首尾加
AppSecret→ MD5 加密 → 大写 → 得到sign
3. 商品详情调用示例(Python)
python
运行
import hashlib
import requests
import time
def vip_item_get(app_key, app_secret, num_iid):
"""官方商品详情接口"""
api_url = "https://api.vip.com/router/rest"
timestamp = str(int(time.time() * 1000))
params = {
"method": "vip.item.get",
"app_key": app_key,
"timestamp": timestamp,
"format": "json",
"num_iid": num_iid,
"sign_method": "md5"
}
# 签名生成
sorted_params = sorted(params.items(), key=lambda x: x[0])
param_str = "&".join([f"{k}={v}" for k, v in sorted_params])
sign_str = app_secret + param_str + app_secret
sign = hashlib.md5(sign_str.encode()).hexdigest().upper()
params["sign"] = sign
resp = requests.get(api_url, params=params)
return resp.json()
# 调用
# vip_item_get("你的AppKey", "你的AppSecret", "商品ID")
四、比价项目实战要点
1. 数据字段(核心)
- 必采:
商品ID、名称、现价、原价、折扣、库存、品牌、分类、活动 - 可选:
主图、规格、评论数、好评率
2. 定时监控(价格预警)
python
运行
import schedule
import time
def monitor_price(goods_id, target_price):
info = get_vip_product_detail(goods_id)
if info and float(info["现价"]) <= target_price:
print(f"【降价提醒】{info['商品名称']} 现价{info['现价']},低于{target_price}")
# 可加邮件/短信/企业微信推送
# 每30分钟监控一次
# schedule.every(30).minutes.do(monitor_price, "1710613157", 200)
# while True:
# schedule.run_pending()
# time.sleep(1)
3. 数据存储与对比
- 存入:MySQL/PostgreSQL/CSV
- 对比:历史价、跨平台价、折扣力度排序
五、常见问题与避坑
- 个人无法申请官方 API → 用第三方
- API 调用频率限制 → 控制 QPS,加重试 / 限流
- 数据延迟 → 选标注「实时」的 API
- 商品 ID 格式 → 唯品会 ID 多为纯数字(如
1710613157) - 反爬风险 → 绝对禁止爬虫,仅用合规 API