课程设计(三)

该文章详细介绍了使用Python进行网络爬虫设计,抓取B站热门视频的基本信息和评论数据。通过数据清洗和处理,进行了数据的可视化展示,包括词云和图表,并使用Excel和数据库存储数据。此外,利用Flask框架创建了网页展示爬取结果。
摘要由CSDN通过智能技术生成

系列文章目录

一 课程设计任务说明及总体设计说明
二 总体设计说明
三 核心功能与代码
四 问题与讨论



前言

记录回顾之前Python课程设计的点点滴滴


3.1.爬虫部分

3.1.1.爬虫核心代码说明

在这里插入图片描述
引入库为后续做准备
Requests用来获取网页数据
Json用来处理数据格式
Csv、sqlite3、xlwt用来存取数据

1.爬取数据
基本信息

链接的灵感也在这里介绍一下
首先我们打开b站热门排行榜(推荐用谷歌)
在这里插入图片描述

F12查看流量包
可以看到有一个流量包,点击过后
在这里插入图片描述

这不就是我们想要抓取的数据
不过在网页上的仍然是字符串格式
要处理为python能处理的字典嵌套列表格式
而且经过测试后,修改链接后面的参数ps是数量,pn是翻页
Pn范围为1-4,ps范围为1-50
我们想要获取所有热门视频,那就要设置ps为50,然后抓取所有页数(for循环解决)
然后对抓取的数据json处理为一个大列表里面有嵌套许多字典,并且数据格式要为utf-8.
在这里插入图片描述

评论
在这里插入图片描述
在这里插入图片描述

这边思路与爬取基本信息差不多
不过需要获取更多参数,比如bv号和oid,这样才能爬取特定视频下的评论
在这里插入图片描述

复制上面的bv号
输入后开始运行
在这里插入图片描述

3.1.2.数据情况

在这里插入图片描述
示例代码入上
爬取了共200个视频的情况
爬取时间如下

基本信息
在这里插入图片描述
评论
在这里插入图片描述

3.2.数据处理部分

3.2.1.数据清洗

对于自己想爬取的数据中
基本数据并没有什么缺失和遗漏
评论数据没有子评论挺可惜的,
不过主评论就能分析很多情况了,比如做成词云

3.2.2.数据分析及可视化

3.2.2 数据处理

通过前面得到的数据其实已经很好处理了,只需要遍历然后提取我们想要的数据
在这里插入图片描述
截取一部分来看
很明显,每个字典里还存在字典嵌套的情况,不过只要我们懂得访问相应的键名就能获得想要的数值

在这里插入图片描述
上图就是想要获取的各项数据类型,已经注释好了
我是用列表嵌套的方式来存储,每个小列表count存储一部视频相关信息,然后再全部存进datalist大列表里,本来还想要视频介绍,但是考虑到很多视频要么没有,要么就很长,影响后来的数据可视化观感所以就没有获取

数据存储

1)Excel
在这里插入图片描述
定义了一个saveData函数呈现效果图
(虽然排序了,但是其实我觉得不管从哪个数据类型来排都不客观,因为某些up主的视频质量不高只是因为粉丝数量庞大,后面csv文件会根据相同类型的视频进行排序)

2)数据库存储
用数据库来存储是方便后面的词云和网页表格作铺垫
也是定义函数,一个初始化数据库包括建表,另外一个就是将数据存储到表中
在这里插入图片描述
在这里插入图片描述
最终完成数据库的存储
在这里插入图片描述
对于评论词云代码较少
在这里插入图片描述

可视化展示

接下来是一个简单的可视化
运用flask框架在自己电脑上呈现网页效果
在这里插入图片描述

表格
在这里插入图片描述

这边只是从播放量进行排名,并不客观,仅供参考
然后我在每个up的名称出加上了各自的跳转超链接,想要看谁的视频直接点击up主名称就好,然后进入之后就可以获取相应视频的bv好为评论爬取做准备
比如我想看逗比的雀巢就可以直接点击了

图表
在这里插入图片描述
在这里插入图片描述
词云
在这里插入图片描述

3)csv存储
效果图
在这里插入图片描述
在这里插入图片描述
这里的综合评分就是点赞0.3 + 评论0.7
可以看到按照这样标准的综合评分效果并不好

下面这张图片是成功存储特定视频的评论包括时间和点赞量
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值