【python大作业/爬虫实战】——基于京东商品评论的爬虫数据采集+可视化+情感分析(附完整代码)

【python大作业/爬虫实战】——基于京东商品评论的爬虫数据采集+可视化+情感分析(附完整代码)

在当今大数据时代,网络数据挖掘与分析已成为企业决策和产品优化的重要依据。本文将详细介绍如何通过Python爬虫技术采集京东商品评论,并进行数据清洗、可视化分析和情感分析的全过程。本教程适合有一定Python基础,对数据分析和网络爬虫感兴趣的读者。

> 本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

一、项目背景

随着电商的发展,商品评论数据已经成为用户决策的重要依据,也是商家了解市场反馈、优化产品的关键参考。

然而,该平台评论接口加密参数破解复杂,使得采集评论数据变得较为困难。

本项目以京东商品评论采集为目标,借助 DrissionPage + PyAutoGUI 构建了一个稳定、可用的数据采集程序,支持多标签分类评论采集,并将评论数据保存至 CSV 文件中。

更新时间:2025-9-13

drissionpage版本

 二、项目亮点与应用场景

🌟 项目亮点:

  • 支持多标签评论抓取(好评、中评、差评、追评等)

  • 模拟用户浏览行为,真实触发评论加载

  • 直接监听京东 API,数据结构清晰,稳定可用

  • 数据直接保存为表格(CSV),方便后期分析建模

📈 可应用于:

  • 情感分析 / 关键词提取

  • 商品优化 / 用户画像分析

  • 数据科学练习项目

  • 教学、论文数据集采集

三、环境准备

pip install DrissionPage pyautogui

✅ 额外要求:

  • 安装 Chrome 浏览器

  • Chrome 开启调试模式(默认监听端口 127.0.0.1:9527)

  • DrissionPage 已配置好 ChromiumPage 运行环境

四、采集字段说明

以下是本项目采集的京东评论字段,采集结果会以 CSV 格式保存。

字段名 描述 示例
用户名 评论者在京东的昵称 小李**
评分 商品评分,范围为 1~5 5
评论时间 评论发布时间 2024-03-15
评论内容 用户对商品的评论文字 手机手感很好,运行流畅!

所有数据均保存为 CSV 文件,可直接导入 Excel 或 Python 分析。

五、爬虫实现思路

1️⃣ 打开商品详情页

通过 DrissionPage 自动访问指定京东商品链接。 详情页地址

from DrissionPage import ChromiumPage
page = ChromiumPage('127.0.0.1:9527')

page.get('https://item.jd.***/100112301034.html')

2️⃣ 点击“全部评论”入口

页面结构相对清晰,通过 XPath 定位并点击“查看所有评论”按钮。

3️⃣ 循环点击不同的评论标签

自动点击如“晒图”、“视频”、“差评”、“追加评论”等选项,确保采集完整标签数据

4️⃣ 模拟滚动加载评论内容

通过 pyautogui.scroll() 模拟真实用户滚动行为,触发京东页面异步加载。

5️⃣ 监听评论接口数据

京东的评论是通过 API 加载的,使用 page.listen.start() 监听接口 /client.action,直接拿到 JSON 数据。

6️⃣ 解析 JSON 并存入 CSV

提取字段写入 jd.csv,格式清晰,方便使用。

六、项目运行效果展示

七、情感分析

SnowNLP 是一个专为处理中文文本设计的 Python 库,基于自然语言处理技术,提供了多种功能,包括分词、词性标注、情感分析、文本转换(简繁转换)、关键词提取、摘要生成等。其核心优势在于对中文文本的处理能力,尤其是情感分析功能。


SnowNLP 的情感分析功能基于一个预训练的模型,能够判断文本的情感倾向是正面还是负面。情感分析的结果是一个介于 0 到 1 之间的浮点数,分数越接近 1,表示文本的情感倾向越正面;分数越接近 0,表示文本的情感倾向越负面。

由于snlp原始是用购物类的数据进行训练得到的模型,然后这次的数据手机购物评论数据,因此该项目就不自主进行模型的学习和训练

from snownlp import SnowNLP
import numpy as np
 
def process1(x):
    try:
        score = SnowNLP(x).sentiments
        return score
    except:
        return np.nan
     
df_ = df['评论内容'].drop_duplicates().to_frame().reset_index(drop=True)
 
df_['情感得分'] = df_['评论内容'].apply(process1)
df_['评分等级'] = pd.cut(df_['情感得分'],bins=[0, 0.5, 0.8, 1],labels=['差评', '中评', '好评'],right=False)  # 包含左边界,不包含右边界

八、完整代码

(一)数据采集(爬虫)部分

如果你对这个项目感兴趣,想要获取完整可运行的源代码,欢迎在评论区留言或私信(主页 \/)zzxcrq1234 伪善。

(二)可视化

1.情感得分分布直方图
2.评分等级分布情况

3.基于星期的用户活跃度变化趋势 
4 评论词云 

转载请说明出处内容投诉
CSS教程网 » 【python大作业/爬虫实战】——基于京东商品评论的爬虫数据采集+可视化+情感分析(附完整代码)

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买