万万没想到,逛B站也能学编程了
作者 | 徐麟,某互联网公司数据分析狮
转载自 | 数据森麟(id:shujusenlin)
前言
很多人提到B站,首先想到的就会是二次元或者鬼畜,上个月,我们公众号也发表了一篇关于B站鬼畜视频的文章:《大数据解读B站火过蔡徐坤的“鬼畜“区巨头们》。
然而,实际上B站其实是个非常神奇的网站,里面的内容可谓是包罗万象,有趣的弹幕文化也能极大地提高大家的体验,B站也逐渐地成为了一个用来学习的“神器”。
近期B站获得了央视网的力挺,报道称B站已经成为了越来越多的年轻人的学习阵地,正所谓“我在B站看番,你却在B站学习” ,今天我们就来爬取B站上那些播放量、弹幕量排名靠前的编程类视频,一起去了解B站的另一面。
数据来源
我们此次的数据主要来源于B站搜索框中输入“编程”后的视频列表及相关信息:
B站一共提供了物种视频排序的方式,每种能够返回前1000个视频,我们分别爬取五种排序所得到的1000个视频之后对5000个视频进行排序,最终得到了2000多个编程类视频的信息
同时我们也增加了一些筛选条件,使得最终获取到的编程教学视频更具代表性:a.所属分类为科技类 b.视频时长大于60分钟,部分代码如下:
## 获得列表def get_list(i,j):attempts = 0success = Falsewhile attempts < 5 and not success:try: url = 'https://search.bilibili.com/all?keyword=%E7%BC%96%E7%A8%8B&from_source=banner_search&order={}&duration=4&tids_1=36&page={}'.format(i,j+1) header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win32; x32; rv:54.0) Gecko/20100101 Firefox/54.0', 'Connection': 'keep-alive'} cookies ='v=3; iuuid=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03; webp=true; ci=1%2C%E5%8C%97%E4%BA%AC; __guid=26581345.3954606544145667000.1530879049181.8303; _lxsdk_cuid=1646f808301c8-0a4e19f5421593-5d4e211f-100200-1646f808302c8; _lxsdk=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03; monitor_count=1; _lxsdk_s=16472ee89ec-de2-f91-ed0%7C%7C5; __mta=189118996.1530879050545.1530936763555.1530937843742.18' cookie = {} for line in cookies.split(';'): name, value = cookies.strip().split('=', 1) cookie[name] = value html = requests.get(url,cookies=cookie, headers=header).content bsObj = BeautifulSoup(html.decode('utf-8'),"html.parser") script = bsObj.find_all('script')[3].text info = json.loads(script.replace('window.__INITIAL_STATE__=','').split(';(function()')[0])['allData']['video'] return info except: attempts = attempts+1 return []coding_all = []type = ['click','stow','dm']for i in type: for j in range(50): this_coding = get_list(i,j) coding_all = coding_all+this_coding
最终,我们获取到了如下的视频信息列表:
数据分析
获取到数据之后,我们首先关注的是这些视频的主要内容,通过视频给出的标签,绘制整体内容总结的词云图:
可以看到,上面的词云除了编程语言,技术之外包含了许多类似于学习,教程这样的通用描述性词汇,我们需要进一步从中筛选出与编程语言、技术相关的词云,提高词云图的效果:
可以看到,经过筛选后的词云图效果要好很多,其中基本上囊括了现在比较火的编程语言,如Java、Python 以及数据结构、机器学习这些技术类的内容,下面我们来看一下各编程语言的播放量及弹幕量对比:
我们此次将linux也划分到语言类中,可以看到目前基本上就是处于Python、C语言、Java三组鼎力的态势,Python略微领先于其他两种语言,这也一定程度反映了当今的整体发展趋势。由此可见,B站的内容也是与时俱进,适合年轻人去学习了解编程整体发展趋势。
看完了语言类,我们再来看一下具体的技术类排行榜:
可以看到,前端、人工智能、数据框、爬虫这些大家比较关心以及公司有较大需求量的技术都出现在了榜单中,在B站如果能将自己所要从事领域的视频认真学习,也会有很大的提高,部分代码如下:
## 分组统计coding_tag = dataframe_explode(coding,'tag')coding_tag['tag'] = coding_tag['tag'].apply(str.lower)coding_tag['type'] = coding_tag['tag'].map({tag_dict['tag'][k]:tag_dict['type'][k] for k in range(tag_dict.shape[0])})coding_tag = coding_tag.groupby(['title','pic','author','arcurl','tag','type'],as_index=False).agg({'play':'max','danmu':'max','favorites':'max','review':'max'})tag_count = coding_tag.groupby(['tag','type'],as_index=False).agg({'title':['count'],'play':['sum'],'danmu':['sum'],'favorites':['sum']}) tag_count.columns = ['tag','type','num','play','danmu','favorites']## 绘制图片coding_stat = tag_count[tag_count['type']=='语言']coding_stat.sort_values('play',ascending=False,inplace=True)attr = coding_stat['tag'][0:10]v1 = coding_stat['play'][0:10]bar = Bar("语言类播放量TOP10")bar.add("播放数量", attr, v1, is_stack=True, xaxis_rotate=30,xaxis_label_textsize=18, xaxis_interval =0,is_splitline_show=False,label_text_size=12,is_label_show=True)bar.render('语言类播放量TOP10.html')coding_tag = dataframe_explode(coding,'tag')coding_tag['tag'] = coding_tag['tag'].apply(str.lower)coding_tag['type'] = coding_tag['tag'].map({tag_dict['tag'][k]:tag_dict['type'][k] for k in range(tag_dict.shape[0])})coding_tag = coding_tag.groupby(['title','pic','author','arcurl','tag','type'],as_index=False).agg({'play':'max','danmu':'max','favorites':'max','review':'max'})tag_count = coding_tag.groupby(['tag','type'],as_index=False).agg({'title':['count'],'play':['sum'],'danmu':['sum'],'favorites':['sum']}) tag_count.columns = ['tag','type','num','play','danmu','favorites']## 绘制图片coding_stat = tag_count[tag_count['type']=='语言']coding_stat.sort_values('play',ascending=False,inplace=True)attr = coding_stat['tag'][0:10]v1 = coding_stat['play'][0:10]bar = Bar("语言类播放量TOP10")bar.add("播放数量", attr, v1, is_stack=True, xaxis_rotate=30,xaxis_label_textsize=18, xaxis_interval =0,is_splitline_show=False,label_text_size=12,is_label_show=True)bar.render('语言类播放量TOP10.html')
精品视频
分析完整体视频内容的分布情况,我们再来看下那些最为精品的视频,由于B站以弹幕文化为特色,我们就依据弹幕量来为大家精选出一些非常不错的视频,首先是所有编程类视频的TOP20:
我们下面分别看一下三足鼎立中的Python、Java、C语言分别弹幕量排名前十的视频信息:
写在最后
B站的阿婆主为为大家提供了特别多的编程学习资源,大家在学习知识的同时,也需要注意的就是相应的版权信息。上传视频一定要确认版权不存在问题之后再去上传,另外如果发现有存在侵权的问题,也要及时跟视频作者进行反馈,及时将侵权视频下架。
另外,希望大家能够多多支持技术类的视频和阿婆主,如果觉得不错就不要吝惜手中的硬币,让更多的技术类阿婆主有动力为大家提供更多更好的视频内容。
(*本文为 AI科技大本营转载文章,转载请联系原作者)
◆
CTA核心技术及应用峰会
◆
5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开,峰会将围绕人工智能领域,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。
更多重磅嘉宾请识别海报二维码查看,点击阅读原文即刻抢购。添加小助手微信15101014297,备注“CTA”,了解票务以及会务详情。
推荐阅读
一文回顾AI绘画的成长之路:从简笔画到真实人脸生成
@程序员,Python 3还有哪些未Get的潜藏技能?| 技术头条
AI画家——毕业设计大杀器之Flask
干货 | 超实用的PyTorch常用代码段合集
60K!刚面完Python!这个被Oracle裁掉的程序员求职刷爆全网!
厉害!女学生偷师男子学校,变身区块链开发工程师
真壕!腾讯员工平均月薪 7 万!
如何使用「番茄法」高效的写算法题?
深扒! 币安被盗的7074.18枚比特币去哪了?
这家公司的 IoT ,你可千万别低估!
点击阅读原文,了解「CTA核心技术及应用峰会」
万万没想到,逛B站也能学编程了相关推荐
- go 学习笔记之万万没想到宠物店竟然催生出面向接口编程?
到底是要猫还是要狗 在上篇文章中,我们编撰了一则简短的小故事用于讲解了什么是面向对象的继承特性以及 Go 语言是如何实现这种继承语义的,这一节我们将继续探讨新的场景,希望能顺便讲解面向对象的接口概念. ...
- 万万没想到,枯燥的“机器学习”还可以这样学!
阿里妹导读:机器学习是人工智能的核心之一,涉及领域包括概率论.统计学等复杂学科.对于非专业人士来说,想要理解它着实不容易. 最近,蚂蚁AI平台部的栢柠,却在遛弯中找到解释"机器学习" ...
- 你相信逛B站也能学编程吗?
戳蓝字"CSDN云计算"关注我们哦! 作者 | 徐麟 来源 | 数据森麟 作者:徐麟,某互联网公司数据分析狮,个人公众号数据森麟(id:shujusenlin) 前言 很多人提到 ...
- 你相信逛 B 站也能学编程吗?
作者 | 徐麟 责编 | 胡巍巍 前言 很多人提到B站,首先想到的就会是二次元或者鬼畜. 上个月,笔者也发表了一篇关于B站鬼畜视频的文章:大数据解读B站火过蔡徐坤的"鬼畜"区巨头们 ...
- 万万没想到,坤坤洗白的第一步是周琦…
前晚(2日)中国男篮与波兰队的关键一战惜败后,几乎所有中国球迷都在哭"琦","琦"到一夜未眠. 周琦关键时刻边线发球失误,硬生生把中国男篮提前出线的jio给拖了 ...
- 万万没想到系列,世界上最知名的失败建筑设计合集!
大家好,这里是建模助手. 我们生活在由建筑包围的世界里,生活的面貌造就了建筑的多样性.而矗立的建筑也无言的记录着时代,尤其是一些建筑大师们的作品,可谓是集艺术和美学于一体的一流名作. 但,这不是凡 ...
- 显卡暴涨,这我万万没想到啊
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 梦晨 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI ...
- 科学家们竟用乐高观察细胞,网友:万万没想到啊
杨净 子豪 发自 凹非寺 量子位 报道 | 公众号 QbitAI 玩乐高还能玩出个显微镜?! 原本以为是一个普普通通的玩具. 没想到,还真能当成显微镜来用,是能看到细胞的那种. 真·高端新玩法! 比如 ...
- 显卡暴涨,等等党输了,这我万万没想到啊
梦晨 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 万万没想到,去年信心满满准备好钱包要买30系显卡的我,现在连1660Ti都快买不起了. 不仅官方原价3899的RTX 3070,一路 ...
最新文章
- Spark SQL CLI 运行
- Restful API 设计
- 数字时代的抉择,金蝶 EBC 的破局
- wordpress忘记登录密码,更改域名的办法。
- ubuntu 开启ipv6_如何在Ubuntu服务器上重新启用IPv6?
- linux内核热修复,揭露内核黑科技 - 热补丁技术真容
- 实例3 输出由“*”组成的三角形
- 第四点没有重定义吧,第一个i的作用域就是那个循环,它出了这个域就被释放了。...
- zend反编译-dezender 使用
- distributeed 1.21.8 requires msgpack,which is not installed 分布式1.21.8需要msgpack,未安装
- 方便快速地创建新浪微博表情选择对话框——jQuery Sina Emotion
- Latex 编译环境,在图片的标题中加入脚注
- 【一起学系列】之迭代器组合:虽然有点用不上啦
- Android 软键盘顶起布局相关
- WTEM-1Q/GPS瞬变电磁仪操作步骤
- 扫描版模糊pdf优化方法
- 十年远征:一个云操作系统的光荣与梦想
- 使用https请求接口报:javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常的问题处理
- dllreg解除服务器注册,最简单的修复IE浏览器的方法:注册表重新注册DLL
- 专家解读:顺丰和菜鸟开战核心是大数据
热门文章
- WaveSwipeRefreshLayout
- ASP.NET将Session保存到数据库中
- XShell连接Deepin
- nagios监控三部曲之——为什么nagios不能发送报警邮件(2)
- ::operator new、sgi stl alloc、dlmalloc测试结果
- 【Computer Vision】 复现分割网络(1)——SegNet
- 大数据批量导入,解决办法,实践从定时从 sqlserver 批量同步数据到 mySql
- Spring Boot启动过程(二)
- ubuntu 14.04安装postgresql最新版本
- [记录]calculate age based on date of birth