1.数据抓取

数据集的获取是我们进行数据分析的第一步。现在获取数据的主要途径一般为:现成数据;自己写爬虫去爬取数据;使用现有的爬虫工具爬取所需内容,保存到数据库,或以文件的形式保存到本地。
博主用的是用自己编写的爬虫代码获得数据。

爬虫的设计思路

1.首先确定需要爬取网页URL地址
2.通过HTTP/HTTPS协议来获取相应的HTML页面
3.提取HTML页面里有用的数据
a.如果是需要的数据就保存起来
b.如果是页面里的其他URL,那就继续执行第二步。

爬虫基本流程

发起请求
通过HTTP库向目标站点发起请求,就是发送一个Request,请求可以包含额外的header等信息,等待服务器的响应
获取响应内容
如果服务器正常响应,会得到一个Reponse,Reponse的内容便是所要获取的页面内容,类型可能有HTML,json字符串,二进制数据(如图片视频)等类型。
解析内容
得到的内容可能是HTML,可以用正则表达式,网页解析库进行解析,可能是json,可以直接转为JSON解析对象解析,可能是二进制数据,可以做保存或者进一步处理。
保存数据
保存的形式多种多样,可以保存成文本,也可以保存到数据库,或者保存特定格式文件

反爬虫机制与对策

1 通过分析用户请求的Headers信息进行反爬虫。网站中应用的最多
2通过验证用户行为进行反爬虫,不如通过判断同一个ip在短时间内是否频繁访问对应网站等进行分析。
3通过动态页面增加爬取的难度,达到反爬虫目的。
对策
1 在爬虫中构造这些用户请求的headers信息,以此将爬虫伪装成浏览器
2 使用代理服务器并经常切换代理服务器方式,一般就能够攻克限制。
3.利用一些软件,比如selenium+phantomJS就可以攻克
反爬虫的手段 :user-agent、代理、验证码、动态数据加载、加密数据

数据的选择与处理

1 网页文本 如HTML文档 json格式文本
2.图片 获取到的是二进制文件保存为图片格式
3.视频 获取的二进制文件保存为视频格式即可
4.其他 只要能请求到的,都能获取
解析方式
1 直接处理
2 json解析
3 正则表达式
4 BeautifulSoup
5 PyQuery
6 XPath

2.数据清洗

数据得到手,我们就需要对我们爬取的数据进行清洗工作,为之后的数据分析做铺垫,如果清洗的不到位势必会对之后的数据分析造成影响。
下文将从数据格式统一、空值处理。

格式统一

去掉数据的空格中
在用爬虫进行数据爬取时用strip()对爬取的字符串进行处理
将中文数据转换为阿拉伯数字
例如1.7万变成17000,代码如下

 def get_int(s):if s[-1]=="万":s=s[0:-1]s=int(float(s)*10000)else:s=int(s)return s

远行结果如下

if __name__ == '__main__':s="1.2万"price = get_int(s)print(price)#12000

空值处理

用爬虫对数据爬取的时候,若爬取的值不存在会报错,用异常处理语句try{}except:pass(try为爬取视频信息的代码),跳过不存在的视频信息数据。

try:html=requests.get(Link).textdoc=BeautifulSoup(html);List=doc.find('div',{'class':'ops'}).findAll('span')like=List[0].text.strip()#点赞like=self.getint(like)coin=List[1].text.strip()#投币coin=self.getint(coin)collection=List[2].text.strip()#收藏collection=self.getint(collection)print('点赞',like)print('投币',coin)print('收藏',collection)# #将数据 拼合成字典 data={'Title':Title,'link':Link,'Up':Up,'Play':Play,'Like':like,'Coin':coin,'Collection':collection,}# 存储到csv文件self.write_dictionary_to_csv(data,'blibli2.csv')passexcept:pass

3.数据分析及可视化

表格参数信息如图

对视频排放量进行分析

对B站热门播放量进行分析,对2020年热门视频的播放量分为4个等级
一千万排放量以上为一个等级
五百万到一千万播放量为一个等级
五百万到一百万播放量为一个等级
一百万播放量以下为一个等级

l1=len(data[data['Play'] >= 10000000])
l2=len(data[(data['Play'] < 10000000) & (data['Play'] >=5000000)])
l3=len(data[(data['Play'] < 5000000) & (data['Play'] >=1000000)])
l4=len(data[data['Play'] < 1000000])

再数据通过matplotlib库进行可视化。得到下图。

plt.figure(figsize=(9,13)) #调节图形大小
labels = ['大于一千万','一千万到五百万','五百万到一百万','小于一百万'] #定义标签
sizes = [l1, l2, l3, l4] #每块值
colors = ['green', 'yellow', 'blue', 'red'] #每块颜色定义
explode = (0,0,0,0) #将某一块分割出来,值越大分割出的间隙越大
# 中文乱码和坐标轴负号处理
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False
patches,text1,text2 = plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct = '%3.2f%%', #数值保留固定小数位shadow = False, #无阴影设置startangle =90, #逆时针起始角度设置pctdistance = 0.6) #数值距圆心半径倍数距离
#patches饼图的返回值,texts1饼图外label的文本,texts2饼图内部的文本
# x,y轴刻度设置一致,保证饼图为圆形
plt.axis('equal')
plt.title("B站热门播放量分布图")
plt.legend() # 右上角显示
plt.show()

从图中可以看出,在B站能上每周必看热门推荐的视频播放量大部分在五百万到一百万播放量,低于一百万播放量的视频很难上每周必看热门推荐,而一年中播放量达到于一千万的视频也很少。
让我们一起看看播放量排名前10的视频是那些好看的视频

data.nlargest(10,columns='Play')

再数据通过matplotlib库进行可视化。得到下图。

d.plot.bar(figsize = (10,8),x='Title',y='Play',title='Play top 10')
plt.xticks(rotation=60)#夹角旋转60度
plt.show()

从图中可以看出哔哩哔哩拜年祭最受欢迎且播放量远远高于其它视频,说明B站2020年拜年祭节目进行的比较成功。

对作者进行分析

通过数据分析看那个作者的作品上热门次数最多,从而判断那个作者在2020年中最受欢迎。
对作者进行划分,统计出现的次数

d2=data.loc[:,'Up'].value_counts()
d2=d2.head(10)

再数据通过matplotlib库进行可视化。得到下图。

d2.plot.bar(figsize = (10,8),title='UP top 10')
plt.show()

说明B站上每周热门次数最多的作者是凉风Kaze,一年52周热门推荐,一共出现了48次,几乎每周热门都有他的视频出现。从数据来看,2020年最受欢迎的作者是凉风Kaze。

对视频参数分析

对热门视频的点赞,投币,收藏平均比例进行分析

data['点赞比例'] = data['Like'] /data['Play']
data['投币比例'] = data['Coin'] /data['Play']
data['收藏比例'] = data['Collection'] /data['Play']
d3=data.iloc[:,8:11]
d3=d3.mean()


再数据通过matplotlib库进行可视化。得到下图。

d3.plot.bar(figsize = (10,8),title='UP top 10')
plt.show()

2020年中点赞比例最高,达到大约9%。说明在B站看视频的人,平均10个人中才会有一个人点赞。而平均平均20个人中才会有一个人对视频进行投币。

对标题进行分析

对标题高频次进行提取,看那类标题比较受欢迎
首先对所有标题进行遍历,储存在字符串s中

d4=data['Title']
s=''
for i in d4:s=s+i

然后用词云进行可视化
标题中带有“朱一旦,半佛,罗翔”等作者名或“英雄联盟,原神”等游戏热门视频比较多。

B站2020年每周必看热门视频数据盘点(数据分析)相关推荐

  1. python b站日排行榜_B站2020年每周必看热门视频数据盘点!Python数据分析

    1.数据抓取 数据集的获取是我们进行数据分析的第一步.现在获取数据的主要途径一般为:现成数据:自己写爬虫去爬取数据:使用现有的爬虫工具爬取所需内容,保存到数据库,或以文件的形式保存到本地. 博主用的是 ...

  2. B站2020年每周必看热门视频数据盘点!Python数据分析

    1.数据抓取 数据集的获取是我们进行数据分析的第一步.现在获取数据的主要途径一般为:现成数据:自己写爬虫去爬取数据:使用现有的爬虫工具爬取所需内容,保存到数据库,或以文件的形式保存到本地. 博主用的是 ...

  3. B站2020年每周必看热门视频数据盘点(数据分析)1.数据抓取2.数据清洗3.数据分析及可视化

    1.数据抓取 数据集的获取是我们进行数据分析的第一步.现在获取数据的主要途径一般为:现成数据:自己写爬虫去爬取数据:使用现有的爬虫工具爬取所需内容,保存到数据库,或以文件的形式保存到本地. 博主用的是 ...

  4. Python:【B站每周必看】分区数据分析

    目录 一.实现目标¶ 二.导入数据并处理 1.导包 2.导入数据 3.缺失值与异常值处理 三.数据分析 1.每周必看的总体数据趋势 2.每周必看的分区排行 三.分区特点 四.数据结论 一.实现目标¶ ...

  5. Android 每周必看资源

    1 每周必看的网站: https://github.com 程序员的代码天堂 http://p.codekk.com/ 众多的开源库,开源框架的解析. http://www.trinea.cn/ An ...

  6. 2020中国高校计算机大赛·华为云大数据挑战赛-数据分析(一)

    2020中国高校计算机大赛·华为云大数据挑战赛–数据分析(一) 正式赛已经开始几天了,但这几天有很多事要忙,所以每什么时间来做比赛,昨天把数据下下来,结合论坛里某个小伙伴的baseline简单分析了下 ...

  7. 建站购买服务器前必看:服务器各参数的超详细说明

    购买服务器前必看,服务器各参数的超详细说明: 一问:什么是服务器?服务器能干什么用?服务器有哪些类型? 答:服务器可看做一台可以处理数据的机器,功用类似于我们生活中的电脑,用于存储网站文件的,例如网站 ...

  8. 大话西游手游服务器维护要多久,大话西游手游:每周必看 2020年6月11日维护公告...

    各位大话西游玩家们大家好,进行每周例行的维护工作又来啦.为了保证广大玩家的游戏质量,<大话西游>手游版将于2020-06-11上午8:00停机维护,时间为早上8:00-10:00.如果在维 ...

  9. 【管理类联考➕英语二】2020考研高分必看

    [2020管理类联考]❤考研复习方法 网课推荐 ❤ 一.管理类联考,管理类综合和英语二分两科科目进行考试.管理类联考包括 工商管理MBA ,公共管理MPA,会计硕士mpacc,审计硕士maud,工程管 ...

  10. (必看)视频开发项目的技术来源、实现形式、走向。 --VFW。DirectSHow 。MediaFoundation...

    1. DirectX.Directshow及Wince Directshow 1.DirectX是什么 DirectX(简 称:DX)是微软推出的一套基于Windows系统的多媒体应用程式接口APIs ...

最新文章

  1. es写入数据的工作原理是什么啊?es查询数据的工作原理是什么啊?
  2. Ruby之父:写Ruby时工作特别闲,总加班的人很难做出创造
  3. Scroller解析
  4. 【ruoyi若依】启用HTTPS/SSL后,首页重定向出错
  5. 中石油训练赛 - Swapping Places(字典序最小的拓扑排序)
  6. JavaWeb中的Session、SessionListener、在线人数统计
  7. ruby 怎么抛异常_Ruby中的异常处理
  8. 数据迁移测试_自动化数据迁移测试
  9. loadrunner 录制java_LoadRunner脚本录制流程
  10. image.resize()==>返回此图像的大小调整后的副本
  11. Shutter - 带有众多功能的屏幕截图工具
  12. java 动手动脑之父子继承
  13. Akka系统《sixteen》译
  14. java房屋出租系统
  15. 天正网络版修改服务器地址,修改天正网络版服务器地址
  16. QT入门第四天消息盒子+对话框+定时器+日期和时间(源码)
  17. Dinky 0.6.2 已发布,优化 Flink 应用体验
  18. java计算机毕业设计 - 大转盘抽奖微信小程序
  19. WinCC在C脚本创建电子签名对话框
  20. 在Android平台上搭建Qualcomm的FastCv

热门文章

  1. 读书笔记:专为中国人写的记忆书-数字密码表
  2. 华为q1设置虚拟服务器,华为路由Q1上网设置【图文】教程 | 192路由网
  3. 小米5测试机软件,小米手机硬件检测软件
  4. 从400亿估值的链家网成长为4000亿的房地产产业平台,贝壳做对了这三点创新
  5. 查看已有的docker镜像latest的具体版本号
  6. “百度搜索框提示”代码
  7. 如何在3ds max中轻松快速地为枕头建模?
  8. game.php,game.php
  9. Android P 源码分析 5 - Low memory killer 之 lmkd 守护进程
  10. html单元格文字首行缩进,刘启智问:excel里怎么首行缩进 Excel在表格中的文字要首行缩进二字符,该如何设置?...