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

然后用词云进行可视化

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

近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地

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

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

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

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

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

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

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

  4. Android 每周必看资源

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

  5. 开店必看!带你用Python分析闲鱼的爆款商品

    开店必看!带你用Python分析闲鱼的爆款商品 分享 Python 自动化及爬虫.数据分析实战干货,欢迎关注. 1 目 标 场 景 经常看到有朋友在闲鱼卖些小东西又或是自己擅长的一些技能,都能为他们带 ...

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

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

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

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

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

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

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

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

最新文章

  1. 接口测试 2021 接口测试白皮书 欢迎下载阅读
  2. qt c语言程序运行时间,c – 在Qt中计时事件的最佳方法
  3. Linux命令整理 - 文件搜索【4】
  4. latex 特殊符号
  5. NYOJ 559 报数游戏
  6. ftp、sftp、vsftp、ssh、vsftpd、sshd
  7. jdk自带的Unicode转utf8工具
  8. Mybatis源码之缓存模块分析
  9. GitHub上传文件不能超过100M的解决办法
  10. 【鲲鹏来了】华为云鲲鹏弹性云服务器 KC1一文全掌握(4)
  11. JHChart 1.1.0 iOS图表工具库中文ReadMe
  12. S:date 的使用方法
  13. 零基础学python大概要多久-零基础自学python要多久?
  14. python中对文件、文件夹,目录的基本操作
  15. cef js返回c++的代码_CEF3开发者系列之JS与C++交互之简单介绍
  16. error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools,亲测100%安装
  17. 使用C#从图片文件生成图标ICON文件(附源文件)
  18. 优酷网(YOUKU.com)介绍
  19. SCDM 实例教程:基本几何建模
  20. Vue前端实现微信扫码登录

热门文章

  1. java字符串与输入输出
  2. 苹果关闭iOS 16和16.0.1验证通道,升级iOS 16.0.2后无法降级这2版本
  3. 【ps操作】提高清晰度+保留部分颜色+局部换色
  4. tarjan求强联通分量
  5. 介绍一下labview
  6. laydate组件给结束时间设置为23点59分59秒
  7. mysql中从高到低排序_MySQL数据库少有人知的排序方式 MySQL数据库使用教程
  8. PHP App Store Server API 苹果API退款 查询订单 历史订单 PHP校验签名解码
  9. 大年初四雨中登黄鹤楼
  10. Mysql之limit用法总结