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).text

doc=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')

pass

except:

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学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地

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

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

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

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

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

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

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

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

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

  5. python b站日排行榜_bilibili弹幕网视频日排行榜数据分析

    网络爬虫名称:bilibili弹幕网视频日排行榜数据分析 网络爬虫爬取的内容:bilibili弹幕网视频日排行榜 设计方案概述: 实现思路:爬取网站html源代码,通过页面分析得到想要的数据位置,提取 ...

  6. python b站日排行榜_python3爬虫-爬取B站排行榜信息

    importrequests, re, time, os category_dic={"all": "全站榜","origin": &quo ...

  7. b站电脑客户端_B站(哔哩哔哩) 视频批量下载工具#电脑版##更新

    长按识别下方二维码关注 B站(哔哩哔哩) 视频下载工具#电脑版 软件介绍 这是一款可以在电脑端下载B站视频的工具 相信看过我文章的都知道以前已经推荐过一款 >>点我跳转<< 但 ...

  8. python渗透测试编程技术基础书评_【新手必看】渗透测试学习书籍推荐

    Web综合渗透方向 <Web安全攻防:渗透测试实战指南> 该书出版于2018-7,全书416页,涉及知识面虽广,但90%的知识点都不深入,在新手层面相对深入讲解了SQL注入的利用:知识排序 ...

  9. 自学python推荐书籍2019-入门必看 | 大佬们推荐的Python书单汇总

    转眼也到了年终,这一期换个话题,围绕这几个问题:"学习 Python 该看哪些书?不同的书该怎么看?按照什么样的顺序看?",来聊一聊如何入门 Python,为了更有说服性一些,这里 ...

最新文章

  1. MySQL通讯协议研究2(登录认证)
  2. Android 如何判断CPU是32位还是64位
  3. 关于Vue.js2.0生命周期的研究与理解
  4. 通用兄弟元素选择器 E ~ F
  5. android sd大小,android用户的SD卡相同容量是否完全一样的大小
  6. windows的常用快捷键(实用篇)
  7. SparkSQL中UDAF案例分析
  8. Linux上静态库和动态库的编译和使用
  9. iperf测试带宽linux,iperf3-网络带宽性能测试工具
  10. MySQL(一):MySQL中的事务
  11. Vscode之运行更新出错
  12. 传统金融行业 IT 的核心竞争力究竟在何处?
  13. chorme 下载文件 保留 放弃_怎样避免Chrome扫描下载文件
  14. IDEA for Mac设置JVM运行参数解决运行卡顿问题
  15. Python爬虫入门-fiddler抓取手机新闻评论
  16. Debian10英语环境安装搜狗输入法
  17. 沈航-数理统计-17-18B-有答案
  18. Camera ITS测试
  19. 【JavaScript】关于手机中的触摸手势操作实现过程详解
  20. 注意力机制:认知模型与计算机应用

热门文章

  1. 戒掉这七种思维方式,走向真正的成熟
  2. python发微信提醒天气冷了注意保暖_天气转凉的微信问候语 寒潮来临注意保暖...
  3. 生态网络连通性定义_生态网络结构与格局演变
  4. 苹果隐藏应用_iOS14系统如何隐藏桌面主界面?
  5. 会员积分储值充值管理系统asp源码基于微信公众号
  6. 湖南工商大学计算机与信息学院,赵文军(湖南工商大学计信学院信管教研室副主任。)_百度百科...
  7. Java 数组查找指定元素
  8. 亚马逊适合个人创业吗?一个人单干暴利项目有哪些?分享一下!
  9. 开发过程中那些不得不知道的密码学基础
  10. 这篇文章告诉你表格识别的软件有哪些