当前位置: 首页 > news >正文

计算机毕业设计-基于Python的“哔哩哔哩视频网”视频热度分析

概要

  在21世纪的今天,网络发展越来越快,网上的娱乐方式也越来越多样化,而如今在网上观看视频消遣时间越来越受到大众的青睐。Bilibili视频网站是现当下年轻人最受欢迎的一个视频网站。有调查显示,直到2019年的10月份,Bilibili视频网站的用户在总体网络视频用户占比高达90%。它与其他的视频网站用户相比较,其用户忠实度更高,据其招募报告称,其成员的12个月保留率达79%,而2009年注册的用户中60%的今天仍然活跃。Bilibili是目前国内最受欢迎的综合用户网站,分析其视频热度可以从侧面分析15-45岁群体的爱好,有着重要研究意义。
  本论文为基于Python的“哔哩哔哩视频网”视频热度分析。首先讲解本文使用的相关技术,包括Scrapy框架,Pandas库和pyecharts库。然后根据页面分析使用基于Scrapy的方法对哔哩哔哩视频网数据抓取,并展示了部分数据结果,还对数据进行了预处理,接着为数据分析分别对分区占比、平均播放量、平均三连情况、各区平均播放和热门标签进行可视化,最后总结本论文所做的工作以及展望。
关键词:Scrapy;Pandas;哔哩哔哩视频网

一、研究背景与意义

  与以前我国信息交流不发达的时代相比,如今我国学会上网的人也越来越多,而国家对互联网的普及率也越来越高。导致与2018年相比较,如今中国的上网人数已经比那时提高了2%。而如今随着手机的更新换代,手机上网比用电脑上网更加便捷,有数据显示,如今使用手机上网的人数比使用电脑上网人数多3000万。
  在21世纪的今天,网络发展越来越快,网上的娱乐方式也越来越多样化,而如今在网上观看视频消遣时间越来越受到大众的青睐。Bilibili视频网站是现当下年轻人最受欢迎的一个视频网站。有调查显示,直到2019年的10月份,Bilibili视频网站的用户在总体网络视频用户占比高达90%。而如今不仅是Bilibili,就连像优酷、腾讯、爱奇艺、乐视等的视频网站都以电视剧、电影、动漫等的一些视频类型向游戏、音乐、电竞等当代年轻人喜爱的娱乐类型进行扩展联动。正是有了这些视频网站专业的生产和运营,我国的网络视频行业才慢慢不停地发展起来,逐步形成网络视频的内容与各领域协同的娱乐生态内容。
  Bilibili视频网站于2009年创立,最开始的时候这个视频网站只是类似于今天的A站一样,分享一些精美图片和视频。但随着中国近十多年来互联网的快速发展,该视频网站也慢慢地扩展了其他的业务,例如一些电子商务和手机游戏等。但其特殊之处还不止这些,与优酷和腾讯等其他视频网站不同,Bilibili在ACG文化以及弹幕文化方面上显得独树一帜。随着Bilibili游客数量的快速增长,它的内容也越来越丰富,除了占主导地位的主题之外,现在的Bilibili还提供了各个领域的视频,包括音乐、舞蹈、科学、技术、娱乐、电影、戏剧、时装、日常生活以及广告电影。此外,Bilibili还提供实时流媒体服务,观众可以与流媒体进行互动。通常这些主题都是关于动画、内容创建与游戏策略等。
  Bilibili与其他平台相比,其用户忠实度更高,据其招募报告称,其成员的12个月保留率高达79%,而2009年注册的用户中有60%今天仍然活跃。此外,年龄在15-45岁之间的用户占平台总体用户基础的78%。Bilibili的平均用户每天在该平台上花费超过78分钟,观看每月上传的240万个视频中的一些。Bilibili凭借其独特而活跃的内容社区吸引用户,也是该网站用户数量激增的原因。 而自2018年9月以来,它在12个月内获得了3500万的MAU。
  Bilibili是目前国内最受欢迎的综合用户网站,分析其视频热度可以从侧面分析15-45岁群体的爱好,有着重要研究意义。

二、相关技术介绍

2.1 Scrapy框架

  Scrapy框架在Python语言中处理复杂情况的一种工具。它是一种强大的网页蜘蛛框架,不仅能够轻松构建请求,并且能轻松解析响应。它的性能非常高甚至还可以将网页蜘蛛这种程序工程化以及模块化。
Scrapy框架主要包括:
(1)引擎:主要工作负责项目管道、网页蜘蛛、下载器、调度器中间的通讯、信号分析以及相关数据信息传递等。
(2)调度器:主要负责接收来自引擎发送的请求,并组织和布置以某种方式入队,当被需要时返回到引擎。
(3)下载器:主要工作负责下载引擎发送的所有请求,并将其获取到的响应交还给引擎,并由相关引擎交给网页蜘蛛来处理。
(4)网页蜘蛛:主要负责处理所有响应,从中分析提取数据并获得项目字段所需的数据,向引擎提交需要跟踪的URL并又一次进入到调度器之中。
(5)项目管道:从爬行器中获取的项目进行处理和后处理的地方。
Scrapy 的运行流程基本如下:
(1)首先,引擎从调度程序中检索的URL作为初始目标的检索程序,并开始从此URL抓取。
(2)其次,URL被引擎封装为请求并且传送给下载器,下载器把资源下载到本机后再封装为响应。
(3)网页蜘蛛接收响应同时调用回调函数。

2.2 Pandas库

  Pandas库的创始人是一位名叫Wes McKinney的开发人员开发出来的,其开发Pandas库的目的在于能够对所得到的数据进行更加精准的操作分析以及建模等。而在此出现之前,Python只能够简单的对数据进行处理以及作出一些准备,而对于如今的数据分析的贡献并不是很大。而目前作为一个开源的Pandas,已经能够利用其强大的功能为数据处理提供高性能的处理和分析了。
而如今带有Pandas库的Python语言已经在广泛的领域中使用,其中就包括有学术、商业、金融、经济学、统计和分析等。
Pandas库的主要特点:
(1)具有快速高效的数据框架对象,具有默认和自定义索引。
(2)处理数据对齐和丢失数据。
(3)将不同文件格式的数据加载到内存中的数据对象工具。
(4)可以把日期一期重新塑造以及设置。
(5)可以删除或插入数据结构中的列。
(6)基于标签的切片,大数据集的索引和子集。

三、基于Scrapy的数据抓取

3.1 页面分析

  如图3.1为Bilibili排行榜页面,在对网页的数据抓取前首先需要分析其页面结构。如图3.2为网页的html结构,排行榜页面仅有题目,作者,观看量,评论数,综合得分等数据,更多数据需要进入视频详情页面进行抓取。如图3.3为视频详情的html结构,视频详情页面可以获取与播放视频相关的一些播放量、三连量、转发量、热门标签等信息,我们都可以通过xpath方法来抓取这些在div标签的信息。
在这里插入图片描述

图3.1 排行榜页面
在这里插入图片描述

图3.2 排行榜页面代码

在这里插入图片描述

图3.3 视频详情代码

3.2 数据结果

表3.1为本文获取数据格式,表3.1展示了其中的九行数据,包括了作者、投币数、弹幕数、三连数、作品id、点赞数、类别,回复数、得分、分享数、观看数、题目以及标签十三列的数据内容。
表3.1 原始数据表
在这里插入图片描述

续表3.1 原始数据表
在这里插入图片描述

3.3 数据预处理

数据清理主要是通过删除或修改不正确、不完整、不相关、重复或者格式不正确的数据来准备要分析的数据的过程。在分析数据时,此数据通常不是必需的或无用的,因为它可能会阻碍过程或提供不准确的结果。有几种清理数据的方法,具体取决于数据的存储方式以及所寻求的答案。
数据清理不仅涉及擦除信息以为新数据腾出空间,还在于寻找一种方法来最大化数据集的准确性而不必删除信息。一方面,数据清除包括比删除数据更多的操作,例如修复拼写和语法错误,标准化数据集以及更正错误,例如空字段,缺少代码以及识别重复的数据点。另一方面,数据清理被认为是数据科学基础的基础要素,因为它在分析过程中扮演着重要角色,并能够找到可靠的答案。最重要的是,数据清理的目的是创建标准化且统一的数据集,以允许商业智能和数据分析工具轻松访问并为每个查询找到正确的数据。
从本次采集到的数据中发现并缺失值,而且采取数据有1300行和13列。由于全站榜包含在各分区靠前的视频中,而在rank_tab中有一个全站榜的数据,所以这里就要把全站榜除外,避免重复计算。
df_without_all=df[~df[‘rank_tab’].isin([‘全站’])]
由上面的一行代码可把“全站”这个元素整行进行排除,这样就能够得到一个名为df_without_all的Dataframe,由此一来便能够简单地把收集来的数据进行了一个预清洗。

四、总结

  此次的毕业设计虽然耗时三四个月,但是作为对自己四年大学的一个总结,还是经过不懈努力把它完成了。从选题到开题报告,再从开题报告到毕业设计的实现以及论文的撰写都需要查阅大量的课题资料与实现该设计的涉及的相关技术的文档和书籍。通过这三四个月的不断学习与动手实践,也以这种一边学习一边动手的方式逐渐熟悉了基于Python对网站中网络视频的数据爬取和数据分析。
  在21世纪的今天,网络发展越来越快,网上的娱乐方式也越来越多样化,而如今在网上观看视频消遣时间越来越受到大众的青睐。Bilibili视频网站是现当下年轻人最受欢迎的一个视频网站。有调查显示,直到2019年的10月份,Bilibili视频网站的用户在总体网络视频用户占比高达90%。它与其他的视频网站用户相比较,其用户忠实度更高,据其招募报告称,其成员的12个月保留率达79%,而2009年注册的用户中60%的今天仍然活跃。Bilibili是目前国内最受欢迎的综合用户网站,分析其视频热度可以从侧面分析15-45岁群体的爱好,有着重要研究意义。
  本次论文所进行的工作得出的总结主要有以下几个方面:
(1)通过分析B站综合评分top100的视频分类占比中,我们可以发现生活区的占比最高,其次为动画区,可见目前B站主流视频类型为生活类和动画类。
(2)通过分析B站综合评分top100的视频平均播放量情况时,我们可以发现动画类型的视频平均播放量最高,其次为时尚类的视频,可见在B站用户里最受欢迎的还是动画类的视频,也从进一步判断出B站用户的年龄总体比较年轻。
(3)通过分析B站用户在top100视频各分区的平均三连情况,我们可以发现点赞较多的视频类型分别为影视、生活、动画类型,投币较多的视频类型分别为动画、生活、游戏类型,收藏较多的视频类型分别为时尚、影视、动画类型,其中最高的为时尚类型。总结平均三连情况可得知在点赞人数里,影视区的视频拥有最高的点赞量,其次为生活区;在投币人数里,生活区的视频拥有最高的投币量,其次为动画区;在收藏人数里,时尚区的视频拥有最高的收藏量,其次为影视区。由此可知B站用户更喜欢把数量有限的币投给动画和生活类型的视频,而相对于比较实用的时尚和科技类型的视频他们就更偏向于收藏了。
(4)通过分析B站视频的热门标签,我们可以知道今年的热门视频标签与之前B站所统计的热门视频标签相对比,在B站热门视频标签出现最多的仍然是搞笑标签,可见B站用户多数都喜欢能给人带来快乐的视频类型。而鬼畜和Bilibili新星计划等几个标签作为B站独有的文化仍然比较显眼,而且在今年的视频标签中能够发现挺多与生活相关的标签,结合往年B站的热门视频标签分析,这说明在B站可能每一年的视频标签都在不停地变化。

六、 目录

目 录
第一章 绪论 1
1.1 研究背景 1
1.2 国内外研究现状 2
1.3 章节安排 2
第二章 相关技术介绍 3
2.1 Scrapy框架 3
2.2 Pandas库 4
2.3 pyecharts库 4
第三章 基于Scrapy的数据抓取 6
3.1 页面分析 6
3.2 数据结果 7
3.3 数据预处理 8
第四章 数据分析 10
4.1 分区占比可视化 10
4.2 平均播放量可视化 10
4.3 平均三连情况可视化 11
4.4各区平均播放可视化 13
4.4热门标签可视化 14
第五章 总结与展望 16
5.1 工作总结 16
5.2 展望 16
参 考 文 献 18
附 录 20

相关文章:

  • Python爬虫-数据采集和处理
  • Linux初识环境变量
  • HarmonyOS4.0—自定义渐变导航栏开发教程
  • HTML静态网页成品作业(HTML+CSS)——非遗徽州木雕网页(6个页面)
  • Vue2前端权限控制实战
  • P8711 [蓝桥杯 2020 省 B1] 整除序列 存疑解决篇 Python
  • 【SpringSecurity】十三、基于Session实现授权认证
  • php 对接Pangle海外广告平台收益接口Reporting API
  • mysql之基本概念与安装
  • maven手动上传的第三方包 打包项目报错 Could not find xxx in central 解决办法
  • 从零开始写 Docker(七)---实现 mydocker commit 打包容器成镜像
  • 【C语言】指针基础知识(一)
  • Excel使用VLOOKUP函数
  • C# 使用OpenCvSharp4将Bitmap合成为MP4视频的环境
  • Android和IOS Flutter应用开发使用 Provider.of 时,可以使用 listen: false 来避免不必要的重建
  • .pyc 想到的一些问题
  • 2019年如何成为全栈工程师?
  • Apache Zeppelin在Apache Trafodion上的可视化
  • JavaScript-Array类型
  • React-redux的原理以及使用
  • Selenium实战教程系列(二)---元素定位
  • Shadow DOM 内部构造及如何构建独立组件
  • Vue.js源码(2):初探List Rendering
  • 机器学习中为什么要做归一化normalization
  • 聚类分析——Kmeans
  • 区块链技术特点之去中心化特性
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 推荐一个React的管理后台框架
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • #{}和${}的区别?
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (4)Elastix图像配准:3D图像
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (附源码)计算机毕业设计大学生兼职系统
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • .bat批处理出现中文乱码的情况
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .Net 代码性能 - (1)
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net操作Excel出错解决
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • [Android]Android开发入门之HelloWorld
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [Bada开发]初步入口函数介绍
  • [C#]winform部署yolov9的onnx模型
  • [CSDN首发]鱿鱼游戏的具体玩法详细介绍
  • [DEBUG] spring boot-如何处理链接中的空格等特殊字符
  • [FxCop.设计规则]8. 也许参数类型应该是基类型
  • [GN] 后端接口已经写好 初次布局前端需要的操作(例)
  • [JavaScript]_[初级]_[不使用JQuery原生Ajax提交表单文件并监听进度]
  • [JavaWeb学习] Spring Ioc和DI概念思想
  • [LeeCode]-Divide Two Integers 不用乘除的除法运算