【爬虫+数据清洗+可视化】用Python分析“淄博烧烤“的评论数据

news/2025/2/13 6:26:06/

一、背景介绍

您好,我是@马哥python说 ,一枚10年程序猿。

自从2023.3月以来,"淄博烧烤"现象持续占领热搜流量,体现了后疫情时代众多网友对人间烟火气的美好向往,本现象级事件存在一定的数据分析实践意义。

我用Python爬取并分析了众多网友的评论,并得出一系列分析结论。

二、爬虫代码

2.1 展示爬取结果

首先,看下部分爬取数据:
爬取结果
爬取字段含:视频链接、评论页码、评论作者、评论时间、IP属地、点赞数、评论内容

2.2 爬虫代码讲解

爬虫部分不作讲解。

三、可视化代码

为了方便看效果,以下代码采用jupyter notebook进行演示。

3.1 读取数据

用read_csv读取刚才爬取的评论数据:

df = pd.read_csv('淄博烧烤_评论数据.csv')

查看前3行及数据形状:

print(df.head(3))
print(df.shape)

3.2 数据清洗

处理空值及重复值:
数据清洗

3.3 可视化

3.3.1 IP属地分析-柱形图

柱形图

结论:从柱形图来看,山东位居首位,说明淄博烧烤也受到本地人大力支持,其次是四川、广东等地讨论热度最高。

3.3.2 评论时间分析-折线图

折线图
结论:从折线图来看,4月26日左右达到讨论热度顶峰,其次是5月1号即五一劳动节假期第一天,大量网友的"进淄赶烤"也制造了新的讨论热度。

3.3.3、点赞数分布-箱线图

由于点赞数大部分为0或个位数情况,个别点赞数到达成千上万,箱线图展示效果不佳,因此,仅提取点赞数<10的数据绘制箱线图。
箱线图
结论:从箱线图来看,去除超过10个点赞数评论数据之后,大部分评论集中在0-3个点赞之间,也就是只有少量评论引起网友的点赞共鸣和认可。

3.3.4 评论内容-情感分布饼图

针对中文评论数据,采用snownlp开发情感判定函数:
情感判定
情感分布饼图,如下:
饼图

结论:从饼图来看,积极和消极分别占比不到一半,说明广大网友在认可淄博烧烤现象的同时,也有大量负面讨论存在,比如讨论烧烤的价格略高、住宿条件欠佳、环境污染等负面话题。

3.3.5 评论内容-词云图

由于评论内容中存在很多"啊"、“的”、"了"等无意义的干扰词,影响高频词的提取,因此,采用哈工大停用词表作为停用词词典,对干扰词进行屏蔽:
停用词
然后,绘制词云图:
词云图
结论:从词云图来看,“淄博”、“烧烤”、“山东”、“好吃”、“城市”、“好”、"物价"等正面词汇字体较大,体现出众多网友对以「淄博烧烤」为代表的后疫情时代人间烟火的美好向往。

四、技术总结

淄博烧烤」案例完整开发流程:

  1. requests爬虫
  2. json解析
  3. pandas保存csv
  4. pandas数据清洗
  5. snownlp情感分析
  6. matplotlib可视化,含:

1)IP属地分析-柱形图Bar
2)评论时间分析-折线图Line
3)点赞数分布-箱线图Boxplot
4)评论内容-情感分布饼图Pie
5)评论内容-词云图WordCloud

五、演示视频

代码演示视频:【爬虫+数据清洗+可视化】Python爬取并分析"淄博烧烤"评论


首发公号:【爬虫+数据清洗+可视化分析】舆情分析"淄博烧烤"的评论


我是马哥,全网累计粉丝上万,欢迎一起交流python技术。

各平台搜索“马哥python说”:知乎、哔哩哔哩、小红书、新浪微博。


http://www.ppmy.cn/news/106024.html

相关文章

删除排序数组的重复项

给定一个排序数组&#xff0c;你需要在原地删除重复出现的元素&#xff0c;使得每个元素只出现一次&#xff0c;返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums [1,1,2…

DDD 聚合根

在DDD中&#xff0c;聚合根是一种实体&#xff0c;它代表了一个聚合&#xff08;Aggregate&#xff09;的根节点。一个聚合是一组相关联的领域对象的集合&#xff0c;这些对象一起形成了一个有机的整体。聚合根是聚合内部的一个特殊实体&#xff0c;通过它我们可以访问和操作整…

Mongodb 为什么提起处理JSON 就是MOGNODB 的,因为我没得选

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

Python:Python编程:从入门到实践__超清版:线程

Python线程与安全 实现线程安全有多重方式&#xff0c;常见的包括&#xff1a;锁&#xff0c;条件变量&#xff0c;原子操作&#xff0c;线程本地存储等。 &#x1f49a; 1. 锁2. 条件变量3. 通过 join 阻塞当前线程4. 采用 sleep 来休眠一段时间5. 原子操作5.1 使用 threading…

Qt文件系统源码分析—第八篇QFileSystemWatcher

深度 本文主要分析Windows平台&#xff0c;Mac、Linux暂不涉及 本文只分析到Win32 API/Windows Com组件/STL库函数层次&#xff0c;再下层代码不做探究 本文QT版本5.15.2 类关系图 QTemporaryFile继承QFile QFile、QSaveFile继承QFileDevice QFileDevice继承QIODevice Q…

Maven安装与配置(图解)

Maven是一个基于 Java 的项目管理工具&#xff0c;因此最基本的要求是在计算机上安装 JDK。 Maven 对系统要求如下表&#xff1a; JDKJDK 7.0 及以上。内存没有最低要求。磁盘空间Maven 安装本身大约需要 10MB。除此之外&#xff0c;其他磁盘空间将用于本地 Maven 存储库。本地…

GaussDB云数据库SQL应用系列-视图管理

一、前言 GaussDB是一款基于云计算技术的高性能关系型数据库&#xff0c;支持多种数据模型和分布式架构。在GaussDB中&#xff0c;视图管理是非常重要的一项功能&#xff0c;它可以帮助用户更方便地管理和查询数据。 数据库视图管理是指对数据库中的视图进行创建、修改、删除…

Typescript 学习笔记

数据类型 // ---------- 布尔类型&#xff08;boolean&#xff09;&#xff1a; true/false--------- let flag:boolean true; // flag ‘’ 错误 // ---------- 数字类型&#xff08;number&#xff09;------------------- let a:number 123; // a true 错误写法 // a …