在电商运营、竞品分析、市场调研场景中,商品评论是最具价值的用户反馈数据,包含用户需求、产品痛点、口碑评价等核心信息。手动复制评论效率极低,无法满足批量、高频次的数据采集需求。本文将基于 Python,手把手教你实现淘宝、京东商品评论自动化批量采集,兼顾实用性、合规性与可扩展性,零基础也能快速上手。
一、技术选型与前置准备
1. 核心技术栈
- 编程语言:Python 3.8+(语法简洁,生态丰富)
- 请求库 :
requests(发送网络请求,模拟浏览器访问) - 数据解析 :
json(解析接口返回的 JSON 数据) - 数据存储 :
pandas(将数据保存为 Excel/CSV,方便分析) - 反爬应对:请求头伪装、延时控制、Cookie 登录
2. 环境安装
打开终端,执行以下命令安装依赖库:
bash
pip install requests pandas
3. 核心前提:合规性声明
重要提醒:本文仅用于技术学习,采集数据需遵守《网络安全法》《个人信息保护法》:
- 仅采集公开数据,不采集用户隐私信息;
- 控制请求频率,避免对目标服务器造成压力;
- 不将采集数据用于商业侵权、恶意竞争等非法用途。
二、京东商品评论采集(无登录,简易上手)
京东评论接口无需登录即可获取公开评论,适合作为入门案例,我们直接调用官方后台接口,效率远高于解析网页。
1. 采集步骤
- 获取商品 ID(商品链接中的数字);
- 构造评论接口 URL;
- 发送请求并解析 JSON 数据;
- 批量翻页采集,保存数据。
2. 完整代码实现
python
import requests
import pandas as pd
import time
# ===================== 配置参数 =====================
# 商品ID(替换为你要采集的京东商品ID)
goods_id = "100012345678"
# 采集总页数(每页10条评论)
total_page = 5
# 请求头(伪装浏览器,绕过基础反爬)
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"Referer": "https://item.jd.com/"
}
# 存储评论数据
comment_list = []
def get_jd_comments(page):
"""单页采集京东商品评论"""
# 京东官方评论接口
url = f"https://club.jd.com/comment/productPageComments.action?productId={goods_id}&score=0&sortType=5&page={page}&pageSize=10"
try:
# 发送请求
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status() # 抛出请求异常
data = response.json()
# 解析评论数据
comments = data["comments"]
for item in comments:
comment_info = {
"商品ID": goods_id,
"用户名": item["nickname"],
"评论内容": item["content"].replace("\n", "").replace("\r", ""), # 清理换行符
"评分": item["score"], # 1-5星
"评论时间": item["creationTime"],
"点赞数": item["usefulVoteCount"]
}
comment_list.append(comment_info)
print(f"第{page}页评论采集完成,共{len(comments)}条")
except Exception as e:
print(f"第{page}页采集失败:{str(e)}")
if __name__ == "__main__":
print("开始采集京东商品评论...")
# 批量翻页采集(添加延时,避免请求过快)
for page in range(1, total_page + 1):
get_jd_comments(page)
time.sleep(2) # 每页延时2秒,遵守服务器规则
# 保存为Excel文件
df = pd.DataFrame(comment_list)
df.to_excel(f"京东商品{goods_id}评论.xlsx", index=False)
print(f"采集完成!共{len(comment_list)}条评论,已保存为Excel文件")
三、淘宝商品评论采集(需登录,进阶实战)
淘宝评论接口需要登录态(Cookie) 才能访问,核心是通过浏览器抓包获取 Cookie,伪装成已登录用户采集数据。
1. 抓取 Cookie 步骤
- 打开 Chrome 浏览器,登录淘宝,进入商品详情页;
- 按
F12打开开发者工具,切换到Network(网络); - 刷新页面,筛选
XHR/Fetch请求,找到包含comment的接口; - 复制请求头中的
Cookie字段。
2. 完整代码实现
python
import requests
import pandas as pd
import time
# ===================== 配置参数 =====================
# 商品ID(替换为淘宝商品ID)
goods_id = "688123456789"
# 采集总页数
total_page = 5
# 核心:替换为你自己的淘宝Cookie
cookie = "你的淘宝Cookie"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"Referer": "https://item.taobao.com/",
"Cookie": cookie
}
comment_list = []
def get_tb_comments(page):
"""单页采集淘宝商品评论"""
# 淘宝评论接口
url = f"https://rate.taobao.com/feedRateList.htm?auctionNumId={goods_id}¤tPageNum={page}&pageSize=20"
try:
response = requests.get(url, headers=headers, timeout=10)
# 淘宝接口返回JSONP格式,清理多余字符转为标准JSON
data = response.text.strip().strip("()")
data = eval(data) # 解析数据
comments = data["comments"]
for item in comments:
comment_info = {
"商品ID": goods_id,
"用户名": item["user"]["nick"],
"评论内容": item["content"].replace("\n", "").replace("\r", ""),
"评分": item["score"],
"评论时间": item["date"],
"商品规格": item["auction"]["sku"]
}
comment_list.append(comment_info)
print(f"第{page}页评论采集完成,共{len(comments)}条")
except Exception as e:
print(f"第{page}页采集失败:{str(e)}")
if __name__ == "__main__":
print("开始采集淘宝商品评论...")
for page in range(1, total_page + 1):
get_tb_comments(page)
time.sleep(3) # 淘宝反爬更严格,延时调长
# 保存数据
df = pd.DataFrame(comment_list)
df.to_excel(f"淘宝商品{goods_id}评论.xlsx", index=False)
print(f"采集完成!共{len(comment_list)}条评论,已保存为Excel文件")
四、关键优化点(解决反爬问题)
电商平台都有反爬机制,直接运行代码可能遇到请求失败、IP 封禁,通过以下优化可大幅提升稳定性:
- 请求延时:每页添加 2-3 秒延时,不高频请求;
- UA 随机化 :使用多个
User-Agent,避免固定标识被识别; - IP 代理:大批量采集时,使用代理 IP 切换 IP 地址;
- 异常重试:给请求添加重试机制,避免网络波动导致采集中断。
优化示例(随机 UA)
# 安装依赖:pip install fake-useragent
from fake_useragent import UserAgent
ua = UserAgent()
headers["User-Agent"] = ua.random # 随机生成浏览器UA
五、数据应用场景
采集到的评论数据可直接用于:
- 竞品分析:对比同款商品的用户差评,优化自身产品;
- 口碑监控:实时采集评论,统计好评 / 差评率;
- 用户调研:提取评论关键词,分析用户核心需求;
- 运营决策:根据评论反馈调整商品详情、售后服务。
六、总结
本文通过 Python 实现了淘宝、京东双平台商品评论自动化采集 ,从环境搭建、代码编写到反爬优化,覆盖了完整的实战流程。核心逻辑是调用官方接口 + 伪装请求头 + 批量翻页 + 数据持久化,相比爬虫解析网页,效率提升 10 倍以上。
再次强调:技术无对错,使用需合规。仅将本方法用于合法的学习和研究场景,尊重平台规则和用户权益。