电商平台商品评论信息获取方法及实战案例解析
一、官方API接口:合规高效的数据获取方式
以淘宝和京东为例,官方API是获取评论数据的首选方案,具有数据完整、更新及时、合规性强的特点。
1. 淘宝API实战流程
- 权限申请:
- 注册淘宝开放平台/万邦开放平台账号,完成企业/个人实名认证。
- 创建应用,申请
taobao.item.evaluate.get
(商品评价获取)权限,需1-3天审核。
- 接口调用:
- 参数构造:商品ID(
num_iid
)、页码(page_no
)、每页条数(page_size
,最大100条)。 - 签名生成:使用HMAC-SHA256算法对参数加密,确保请求合法性。
- Python示例:
python
import requests, hmac, hashlib, time
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
params = {
"method": "taobao.item.evaluate.get",
"app_key": app_key,
"num_iid": "123456789", # 商品ID
"page_no": 1,
"page_size": 20,
"timestamp": str(int(time.time())),
"format": "json",
"v": "2.0"
}
# 生成签名
sorted_params = sorted(params.items())
query_str = ''.join([f"{k}{v}" for k, v in sorted_params if k != "sign"])
signature = hmac.new(app_secret.encode(), (app_secret + query_str + app_secret).encode(), hashlib.sha256).hexdigest()
params["sign"] = signature
# 发送请求
response = requests.get("https://eco.taobao.com/router/rest", params=params)
data = response.json()
comments = data.get("item_evaluate_get_response", {}).get("evaluates", {}).get("evaluate", [])
for comment in comments:
print(f"用户: {comment['user_nick']} | 时间: {comment['rate_date']}")
print(f"内容: {comment['content']}\n")
- 参数构造:商品ID(
- 数据解析:
- 提取评论内容(
content
)、评分(rate_score
)、时间(rate_date
)等字段。 - 存储建议:结构化数据(如评分、时间)存入MySQL,文本内容存入MongoDB。
- 提取评论内容(
2. 京东API核心要点
- 接口特性:
- 支持全品类商品,提供评分分布、用户等级、购买信息等维度。
- 分页查询(每页最多50条),支持按评分/时间筛选。
- 调用示例:
python
import requests, time
def get_jd_comments(sku_id, page_size=50):
all_comments = []
page = 1
while True:
params = {
"skuId": sku_id,
"page": page,
"pageSize": page_size,
"accessToken": "YOUR_TOKEN"
}
response = requests.get("https://api.jd.com/comment", params=params)
data = response.json()
all_comments.extend(data["data"]["comments"])
if len(data["data"]["comments"]) < page_size:
break
page += 1
time.sleep(1) # 避免高频请求
return all_comments
二、网络爬虫:突破API限制的补充方案
当API无法满足需求时,爬虫可作为补充,但需谨慎处理反爬机制。
1. 淘宝评论爬虫实战
- 技术要点:
- 动态参数解析:通过浏览器开发者工具定位评论加载URL,分析时间戳(
_ksTS
)、页码(currentPage
)等参数规律。 - 请求头模拟:设置
User-Agent
、Referer
等字段,避免被识别为爬虫。
- 动态参数解析:通过浏览器开发者工具定位评论加载URL,分析时间戳(
- Python代码示例:
python
import requests, time, json
def get_taobao_comments(item_id):
t_param = time.time()
t_list = str(t_param).split(".")
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Referer": f"https://item.taobao.com/item.htm?id={item_id}"
}
params = {
"callback": str(int(t_list[1][3:]) + 1),
"_ksTS": t_list[0] + t_list[1][:3] + "_" + t_list[1][3:],
"currentPage": "1"
}
url = f"https://rate.tmall.com/list_detail_rate.htm?itemId={item_id}"
res = requests.get(url, params=params, headers=headers).text
res = res[len(params["callback"]) + 3:-1] # 去除冗余字符
data = json.loads(res)
comments = data["rateDetail"]["rateList"]
for comment in comments:
print(f"内容: {comment['rateContent']}")
2. 反爬应对策略
- 频率控制:使用
time.sleep()
降低请求频率。 - IP代理:通过代理池轮换IP,避免被封禁。
- 数据清洗:去除HTML标签、特殊符号,使用正则表达式提取有效信息。
三、第三方数据服务商:快速接入的替代方案
适用于无开发能力或需快速获取数据的场景。
1. 服务类型
- API聚合平台:如百度API Store,提供淘宝、京东等电商API一站式接入。
- 垂直领域服务商:
- Early Data:专注保健品电商数据,提供小时级价格情报。
- 鼎点数据:提供价格监测、品牌打假服务。
2. 调用流程
- 注册账号:在服务商平台注册并获取API Key。
- 参数传递:商品ID、页码、每页条数等。
- 数据接收:返回JSON格式评论数据,包含内容、时间、用户信息。
四、合规与风险控制
- 法律合规:
- 遵守《网络安全法》,禁止爬取用户隐私信息(如手机号、地址)。
- 不得将数据用于恶意营销、刷单等违规场景。
- 平台规则:
- 遵循电商平台的
robots.txt
协议,避免高频请求。 - 京东API调用频率限制(如企业账号每分钟不超过200次)。
- 遵循电商平台的
- 数据使用:
- 仅用于合法用途(如舆情分析、产品优化),需脱敏处理敏感信息。
五、进阶应用场景
- 情感分析:
- 使用NLP技术(如SnowNLP、BERT)判断评论情感极性。
- 示例:识别“质量差”“物流慢”等负面评价,优化产品或服务。
- 词云生成:
- 通过
WordCloud
库展示高频关键词,识别用户关注点(如“续航”“性价比”)。
- 通过
- 竞品监控:
- 对比同类商品的用户满意度,调整市场策略。
总结
- 优先选择官方API:数据合规、完整,适合长期监控。
- 爬虫作为补充:突破API限制,但需谨慎处理反爬机制。
- 第三方服务快速接入:适用于无开发能力或紧急需求。
- 合规与风险控制:始终是数据获取的核心前提。