我爬了杨超越编程杯,这是什么硬核的追星方式!

我爬了杨超越编程杯,这是什么硬核的追星方式!

后台回复「ycy」即可获取本文代码和数据

阅读文本大概需要 6 分钟。


大家好我是痴海,最近互联网圈被杨超越编程杯给刷了屏,为了一探这硬核的追星方式,我爬了整个「超越杯」的数据。


1 什么是超越杯


那什么是超越杯?简单的来说就是由村民「杨超越的粉丝」自主举办的编程大赛,为了给超越打气加油并安利。


我爬了杨超越编程杯,这是什么硬核的追星方式!


那杨超越又是谁?可能你并不知道杨超越,但她的表情包你一定见过。


我爬了杨超越编程杯,这是什么硬核的追星方式!


对就是这张前段时间疯狂刷屏的表情「信超越,得好运」。


封面图也是超越杯的宣传海报,设计风格不仅非常酷,并且还有主办方和协办方,非常专业。


超越杯的主题不限范围,任何与杨超越相关的产品都可以参赛。比赛的流程主要分为四个阶段:组队、开发、比赛、运维。


Github 地址

https://github.com/ccyyycy/ycy/


我爬了杨超越编程杯,这是什么硬核的追星方式!


目前已经有超过 200 名的村民参加比赛,村民当中还不乏一些 BAT 的员工,优秀作品的参赛者,还有机会得到 BAT 内推的名额。这是什么硬核的追星方式!


2 爬取 Issue 数据


我作为一名爬虫选手,自然就想到去 GitHub 仓库上爬一波数据,看看这些村民都有哪些优秀的想法和项目。


我爬了杨超越编程杯,这是什么硬核的追星方式!


项目说明规定了需要参赛的村民请到 Issue 里发表组队,于是我打开了 Issue 界面。


我爬了杨超越编程杯,这是什么硬核的追星方式!


村民的脑洞真是大开,有做游戏的、做 APP 的、甚至还用上了深度学习。随后我编写了「ycy_github.py」爬虫,把 Issue 里 229 数据都爬了下来,并存入到 mongodb 中。


我爬了杨超越编程杯,这是什么硬核的追星方式!


我存储了 Issue 里的标题、相应链接、提交时间以及提交者的名称。超越杯数据有了,接下来就要开始下一步的分析。


3 超越杯的数据分析


有些数据内容并没有按格式来,而对于做数据分析的来说统一数据格式是非常重要的一件事,所以我首先把不符合格式的数据清理掉,清除后的数据还有 46 条。


1 格林威治时间转化


首先第一个坑就是 issue 上爬到的时间是「格林威治的时间」,并不是我们标准的北京时间格式。


我爬了杨超越编程杯,这是什么硬核的追星方式!


所以我写了个函数先把「格林威治时间」先转化下。



def utc2local(date_string):
    import dateutil.parser
    import pytz
    from datetime import datetime
    local_time = dateutil.parser.parse(date_string).astimezone(pytz.timezone('Asia/Shanghai'))
    da = datetime.strftime(local_time, '%Y-%m-%d %H:%M:%S')
    return da


2 清洗不符合规范的标题


项目说明栏那里已经说明了提交格式 ,即下面这张图。


我爬了杨超越编程杯,这是什么硬核的追星方式!


我就可以利用 split 函数分割 + 符号,如果分割出来的长度是等于 5 那大概率说明是按标准的格式来的,但还是会有不符合标准的。


原数据只有:issue_title、issue_url、issue_time、issue_name。


我爬了杨超越编程杯,这是什么硬核的追星方式!


通过清洗到了最后的数据变成了下图所示,这样的数据就多了非常多有用的信息了。


我爬了杨超越编程杯,这是什么硬核的追星方式!


到这里本次超越杯的数据基本清理完毕,清洗完之后就开始真正的分析环节了。


4 村民项目提交数


我爬了杨超越编程杯,这是什么硬核的追星方式!


在时间线这条纬度上,3 月 8 号村民提交的 issue 数量是最多的,随后的数量依次递减。


5 村民们选题的方向


我爬了杨超越编程杯,这是什么硬核的追星方式!


我从符合规范中的 46 个项目,通过标题得出的方向,从高到底依次给村民们的项目进行排序。


39% 的村民选择了做游戏,其他的占比基本差不多。村民们的方向也非常丰富多彩,游戏、音频、网站、图片、养成等等都有人在做。


其中有个「编程语言」引起了我的注意,好奇的我点开具体的 issue 地址,项目名为「超越语言/YCYL」。原来是为用繁体字的编程大佬,想要编写属于 YCY 的专属编程语言。


我爬了杨超越编程杯,这是什么硬核的追星方式!


6 村民们脑洞大开的项目名称


接下来我对村民们的项目名称做了一个词云,看看大家用到最多的词语是什么。


我爬了杨超越编程杯,这是什么硬核的追星方式!


很明显大家在取项目名称的时候,大多数会使用超越体,比如「超越快吃鸭」、「超越狂扁小朋友」、「超越带你玩」、「超越AR相机」。


但其中不乏一些即沙雕又有趣的项目名称。


1「双马尾少女不死鱼柠檬精」


我爬了杨超越编程杯,这是什么硬核的追星方式!


2 「旅行青蛙-杨小越」


我爬了杨超越编程杯,这是什么硬核的追星方式!


3 「超越滑机大战」


我爬了杨超越编程杯,这是什么硬核的追星方式!


7 村民们使用的技术栈


我爬了杨超越编程杯,这是什么硬核的追星方式!


村民们使用的技术栈最多是前三名依次是:微信小程序、微信小游戏、Python。


由于大家编写的技术名称并不是规范的写法,所以在统计使用技术栈的时候是有挺大偏差的。但并不影响从数据中可以看出,村民各个都身怀绝技,有会 Python、小程序、iOS、Anroid、小程序、机器学习、AR 等等。从前端到后台、从数据到建模、从设计到游戏,没有村民们不会的技术。


微信小程序之所以会被众多村民使用,一是于最近几年小程序的火爆,二是基于微信这个超级 APP 更容易传播,说不定其中的优秀的作品会在朋友圈引起不小的轰动,这样就可以把超越安利给更多的路人。


8 混入其中


在 issue 上面其实还有很多其他方向的内容,其中有不少的村民是选择爬虫,一下子我就兴奋起来,虽后我就顺藤摸瓜加入了其中一个 qq 群。


我爬了杨超越编程杯,这是什么硬核的追星方式!


没错我也是白嫖代码的混子之一。


虽然群里大家调侃自己是来白嫖的,但实际上大家从确认主题,讨论方案,画出思维导图,分工,开始执行,这些步骤在短短的几个小时内就确认好,执行力非常惊人。

   

我爬了杨超越编程杯,这是什么硬核的追星方式!


9 总结


杨超越最初出现在人们视野是在「创造 101」这档综艺节目上,由于她单纯不做作的性格,逐渐吸粉。但那时候知道杨超越的人还是范围很小的一部分,直到下面的表情出现之后,各大网络门户都能看到杨超越的身影。

我爬了杨超越编程杯,这是什么硬核的追星方式!

我关注到杨超越也是因为朋友圈出现非常多这样的图片,甚至有人还当做头像。

而如今「超越杯」又火了起来,但它为什么会火?

固然是由于杨超越本身就是*的流量明星带来的热度,但我想是因为这样的追星方式,刷新了大部分人以前认知的。

以前的追星方式从来没有出现过这么硬核的编程形式,人天生对新鲜的事物会产生好奇心。就像我因为好奇村民们都会哪些优秀的想法,我才会写下这篇文章。所以这样的「超越杯」,才会引起人们的关注。

如今互联网时代,如果你有独特的一面,是有非常大概率火起来的。比如这次的「超越杯」,如果你也是一名程序员,恰好你的技术不错又有好的点子,最后胜出,虽然不会让你名声鹊起,但肯定能让你被关注「超越杯」的人记住。被人记住,你就可能是这个圈子里 的 KOL(意见领袖),你的影响力就有可能逐渐建立起来,一定你拥有自己的影响力,未来是会产生非常多你意想不到的收益。

最后妹子们如果遇到程序员就嫁了吧,钱多话少执行力还贼强。


我是痴海,一名正在成为数据分析师的爬虫师

喜欢这篇文章的读者,不妨转发、点好看

人必有痴,而后有成

我爬了杨超越编程杯,这是什么硬核的追星方式!