电商数据采集实战:批量自动化获取淘宝、京东商品评论数据

在电商运营、竞品分析、市场调研场景中,商品评论是最具价值的用户反馈数据,包含用户需求、产品痛点、口碑评价等核心信息。手动复制评论效率极低,无法满足批量、高频次的数据采集需求。本文将基于 Python,手把手教你实现淘宝、京东商品评论自动化批量采集,兼顾实用性、合规性与可扩展性,零基础也能快速上手。

一、技术选型与前置准备

1. 核心技术栈

  • 编程语言:Python 3.8+(语法简洁,生态丰富)
  • 请求库requests(发送网络请求,模拟浏览器访问)
  • 数据解析json(解析接口返回的 JSON 数据)
  • 数据存储pandas(将数据保存为 Excel/CSV,方便分析)
  • 反爬应对:请求头伪装、延时控制、Cookie 登录

2. 环境安装

打开终端,执行以下命令安装依赖库:

bash 复制代码
pip install requests pandas

3. 核心前提:合规性声明

重要提醒:本文仅用于技术学习,采集数据需遵守《网络安全法》《个人信息保护法》:

  1. 仅采集公开数据,不采集用户隐私信息;
  2. 控制请求频率,避免对目标服务器造成压力;
  3. 不将采集数据用于商业侵权、恶意竞争等非法用途。

二、京东商品评论采集(无登录,简易上手)

京东评论接口无需登录即可获取公开评论,适合作为入门案例,我们直接调用官方后台接口,效率远高于解析网页。

1. 采集步骤

  1. 获取商品 ID(商品链接中的数字);
  2. 构造评论接口 URL;
  3. 发送请求并解析 JSON 数据;
  4. 批量翻页采集,保存数据。

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. 打开 Chrome 浏览器,登录淘宝,进入商品详情页;
  2. F12打开开发者工具,切换到Network(网络)
  3. 刷新页面,筛选XHR/Fetch请求,找到包含comment的接口;
  4. 复制请求头中的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}&currentPageNum={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 封禁,通过以下优化可大幅提升稳定性:

  1. 请求延时:每页添加 2-3 秒延时,不高频请求;
  2. UA 随机化 :使用多个User-Agent,避免固定标识被识别;
  3. IP 代理:大批量采集时,使用代理 IP 切换 IP 地址;
  4. 异常重试:给请求添加重试机制,避免网络波动导致采集中断。

优化示例(随机 UA)

复制代码
# 安装依赖:pip install fake-useragent
from fake_useragent import UserAgent
ua = UserAgent()
headers["User-Agent"] = ua.random  # 随机生成浏览器UA

五、数据应用场景

采集到的评论数据可直接用于:

  1. 竞品分析:对比同款商品的用户差评,优化自身产品;
  2. 口碑监控:实时采集评论,统计好评 / 差评率;
  3. 用户调研:提取评论关键词,分析用户核心需求;
  4. 运营决策:根据评论反馈调整商品详情、售后服务。

六、总结

本文通过 Python 实现了淘宝、京东双平台商品评论自动化采集 ,从环境搭建、代码编写到反爬优化,覆盖了完整的实战流程。核心逻辑是调用官方接口 + 伪装请求头 + 批量翻页 + 数据持久化,相比爬虫解析网页,效率提升 10 倍以上。

再次强调:技术无对错,使用需合规。仅将本方法用于合法的学习和研究场景,尊重平台规则和用户权益。

相关推荐
START_GAME2 小时前
SQL Server 还原 .bak 文件(SSMS 图形界面法)
运维·服务器·数据库
June5612 小时前
SSH 免密 + 主机指纹登录完整安装步骤(macOS)
运维·macos·ssh
smilejingwei2 小时前
用 AI 编程生成 ECharts 图表并嵌入报表的实践
前端·人工智能·echarts·bi·报表工具·商业智能
【建模先锋】2 小时前
卷积网络(视觉模型)发展史:从 CNN 到 Vision Transformer,再到视觉 Mamba 的主干演化全景图
网络·人工智能·深度学习·cnn·transformer·轴承故障诊断
螺丝钉code2 小时前
设计系统 showdown:Awesome DESIGN.md vs UI UX Pro Max - AI 时代的设计规范新范式
人工智能·ui·ux
大任视点2 小时前
道通科技:锚定能源革命与AI创新,多维布局打开成长空间
人工智能
秦ぅ时2 小时前
GPT-5.4 Nano 评测:轻量模型的效率天花板
人工智能·gpt
早起困难大户2 小时前
使用TypeScript写一个获取天气的MCP Server
人工智能·node.js