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'] = Falsepatches,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.数据抓取2.数据清洗3.数据分析及可视化相关推荐

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

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

  2. 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. 建站购买服务器前必看:服务器各参数的超详细说明

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

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

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

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

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

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

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

  9. 新手必看!单片机掉电检测与数据掉电保存方案

    单片机在正常工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里的数据.在某些应用场合如测量.控制等领域,单片机正常工作中采集和运算出一些重要数据,待下次上电后需要恢复这些重要数据. 因此, ...

最新文章

  1. 跟我斗图,我用Python爬虫下载几个G的表情砸死你
  2. 45个超实用的JavaScript技巧及最佳实践(一)
  3. asp.net添加电子地图
  4. 在VS Code中直接调试Web程序,是怎样一种体验?
  5. 做.NET开发多年,公司要我转Java...
  6. Spring Boot 终极清单
  7. ELMo代码详解(一):数据准备
  8. Kettle:创建资源库
  9. python 获取路径
  10. codepush 微软服务器,ionic3 code-push 搭建自己服务器的问题
  11. python生成api文档_文档API生成工具
  12. 力克亮相CISMA 2017,以工业4.0思维应对时尚变革
  13. ecshop二次开发指南
  14. 太极拳透劲的原理推测
  15. Windows7轻松升级至专业版、旗舰版
  16. Some WSL system related access rights are not set correctly. This sometimes happens after waking the
  17. Java程序员面试宝典——重要习题整理
  18. RHCE考试分开三个阶段
  19. 让我带你弄明白什么是RPC ,帮你整理一下你的小脑瓜!
  20. window10桌面管理器占内存太高解决办法

热门文章

  1. 如何进行销售团队建设?
  2. iOS开发之侧滑手势返回功能
  3. chkconfig(check config)命令详解
  4. PCL移动立方体MarchingCubes
  5. 编译卡爆的Android Studio 3.1.1
  6. 人脸识别系列(二):OpenFace的配置
  7. 猴子摘桃求和------递归
  8. jdk8 新特性之 函数式接口
  9. 串口接收标志位语句_stm32串口——标志位学习
  10. 1产品经理技术——岗位认识