基于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

<think>嗯,用户想了解Excel中的VLOOKUP函数的用法和参数含义。首先,我需要回忆一下VLOOKUP的基本结构。VLOOKUP是垂直查找函数,用于在表格的首列查找指定的值,然后返回该行中指定列的数据。它的四个参数分别是查找值、表格范围、列索引号和匹配模式。 接下来,我得确认每个参数的具体作用。第一个参数是lookup_value,也就是用户要查找的值,比如产品ID或者姓名。第二个参数是table_array,即查找的范围,这里要注意的是,查找值必须位于这个范围的第一列,否则函数无法正确工作。第三个参数是col_index_num,也就是用户想要返回的数据在表格范围中的第几列,这个列数是从表格范围的第一列开始算起的,不是整个工作表的列。第四个参数是range_lookup,决定是精确匹配还是近似匹配,通常用FALSE或0来指定精确匹配,避免错误。 然后,用户可能需要一个具体的例子来理解如何使用。比如,假设有一个产品价格表,用户想根据产品ID查找对应的价格。这时候,VLOOKUP就可以在ID列查找,然后返回价格列的数据。同时,要提醒用户注意表格范围最好使用绝对引用,比如$A$2:$C$100,这样在拖动公式时范围不会变化。 可能遇到的问题也需要考虑。比如,如果查找值不在表格的第一列,或者列索引号超过了表格的列数,函数会返回错误。此外,数据格式不一致也可能导致问题,比如查找值是数字,而表格中是文本格式的数字,这时候需要统一格式。还有,当出现#N/A错误时,可能是查找值不存在,或者匹配模式设置不正确,需要检查参数是否正确。 用户可能还会问到如何避免常见的错误,比如部分数据匹配出错的情况。这时候需要检查是否有多余的空格,或者数据格式不一致,或者表格范围没有锁定导致拖动时偏移。此外,XLOOKUP作为VLOOKUP的升级版,可能在某些情况下更方便,比如可以向左查找或者返回多列数据,这也是可以提及的内容。 最后,整理步骤,从基础语法到参数说明,再到具体案例,逐步引导用户理解如何使用VLOOKUP函数。同时,提供常见错误和解决方法,帮助用户在实际应用中避免问题。如果有必要,还可以比较VLOOKUP和其他查找函数的区别,比如HLOOKUP或XLOOKUP,但根据用户的问题,主要集中在VLOOKUP本身即可。</think>### Excel VLOOKUP函数详解 #### 一、基础语法与参数说明 VLOOKUP函数的语法为: $$=VLOOKUP(lookup\_value, table\_array, col\_index\_num, [range\_lookup])$$ 包含4个参数: 1. **lookup_value**(必填):要查找的值(如单元格引用或具体值) 2. **table_array**(必填):包含数据的表格范围(必须包含查找列和返回列) 3. **col_index_num**(必填):返回值所在列的序号(从table_array第一列开始计数) 4. **range_lookup**(可选):匹配类型 - `TRUE`/`1`:近似匹配(默认值,需数据升序排列) - `FALSE`/`0`:精确匹配(常用选项) [^1][^2] #### 二、使用步骤演示(工资表查询案例) 假设需要根据员工编号查询工资: 1. 建立查询单元格(如`B12`) 2. 输入公式: ```excel =VLOOKUP(A12, $A$2:$D$100, 4, 0) ``` - `A12`:待查询的员工编号 - `$A$2:$D$100`:锁定数据区域(绝对引用) - `4`:返回第4列(工资列) - `0`:精确匹配 [^2][^3] #### 三、常见错误与解决方法 | 错误现象 | 原因 | 解决方案 | |---------|------|---------| | #N/A | 查找值不存在 | 检查数据源或改用`IFERROR`容错 | | #REF! | 列序号超出范围 | 确认col_index_num ≤ 表格列数 | | 部分匹配失败 | 数据格式不一致 | 统一数值/文本格式 | | 结果错位 | 表格未锁定 | 使用`$`符号固定区域引用 | [^3][^4] #### 四、进阶技巧 1. **多条件查询**: 使用辅助列合并多个条件字段 ```excel =VLOOKUP(A2&B2, $D$2:$F$100, 3, 0) ``` 2. **通配符匹配**: `"*"`匹配任意字符,`"?"`匹配单个字符 ```excel =VLOOKUP("张*", $A$2:$C$100, 3, 0) ``` 3. **跨表查询**: 引用其他工作表数据 ```excel =VLOOKUP(A2, Sheet2!$A$2:$D$100, 4, 0) ``` [^1][^4]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值