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

admin17小时前京东API6

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

一、技术选型与前置准备

1. 核心技术栈

  • 编程语言:Python 3.8+(语法简洁,生态丰富)

  • 请求库requests(发送网络请求,模拟浏览器访问)

  • 数据解析json(解析接口返回的 JSON 数据)

  • 数据存储pandas(将数据保存为 Excel/CSV,方便分析)

  • 反爬应对:请求头伪装、延时控制、Cookie 登录

2. 环境安装

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

pip install requests pandas

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

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

  1. 仅采集公开数据,不采集用户隐私信息;

  2. 控制请求频率,避免对目标服务器造成压力;

  3. 不将采集数据用于商业侵权、恶意竞争等非法用途。

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

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

1. 采集步骤

  1. 获取商品 ID(商品链接中的数字);

  2. 构造评论接口 URL;

  3. 发送请求并解析 JSON 数据;

  4. 批量翻页采集,保存数据。

2. 完整代码实现

import requestsimport pandas as pdimport 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 步骤

  1. 打开 Chrome 浏览器,登录淘宝,进入商品详情页;

  2. F12打开开发者工具,切换到Network(网络)

  3. 刷新页面,筛选XHR/Fetch请求,找到包含comment的接口;

  4. 复制请求头中的Cookie字段。

2. 完整代码实现

import requestsimport pandas as pdimport time# ===================== 配置参数 =====================# 商品ID(替换为淘宝商品ID)goods_id = "688123456789"# 采集总页数total_page = 5# 核心:替换为你自己的淘宝Cookiecookie = "你的淘宝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 倍以上。

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


相关文章

京东商品评论API接口封装的心路历程

京东商品评论API接口封装的心路历程

作为一名后端开发者,日常工作中经常会遇到各类API接口的调用与封装需求。最近因项目需要,需对接京东商品评论相关接口,从最初的懵懂摸索、踩坑不断,到最终完成封装、稳定复用,整个过程充满了挑战与收获。今天...

爬虫试用 | 京东商品详情搜索采集助手 – 一键批量采集下载商品详情

爬虫试用 | 京东商品详情搜索采集助手 – 一键批量采集下载商品详情

API:京东item_get_pro功能:输入关键词搜索批量采集商品详情内容,如标题、相应的sku、sku对应的价格、主图、详情图、原价、到手价、优惠、店铺名、店铺id、店铺评分、简介等。公共参数点击...

京东工业商品价格详情数据API调用演示

京东工业根据ID取商品详情 API 返回值说明vipmro.item_get公共参数名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥a...

京东商品评论接口|用API获取商品评论数据实战演示

京东商品评论接口|用API获取商品评论数据实战演示

 编辑jd.item_review获取京东商品评论1、查看API文档,请求参数响应参数、请求示例等请求参数请求参数:num_iid=71619129750&page=1&so...

京东商品sku接口能返回哪些字段数据?(商品价格、主图、规格参数等)

京东商品sku接口能返回哪些字段数据?(商品价格、主图、规格参数等)

 京东item_sku接口是通过商品的skuid获取商品详情数据的,主要包括商品价格、商品标题、规格名称、宝贝链接,商品图片等信息。注册账号可获取京东淘宝API免费测试下面做一个请求示例。以...

京东商品详情获取实例|如何通过调用API获取京东商品价格主图详情图信息

京东商品详情页调用API返回json数据(部分)"item": {  "num_iid": "100010956919...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。