文 | 豆豆
来源:Python 技术「ID: pythonall」
GitHub 作为程序员每天必逛的网站之一,上面有着太多优秀的开源项目,今天派森酱就带大家来梳理下在过去的一年里,GitHub 上最火的 Python 项目 Top10。
数据获取
如果你留心看过 GitHub 的文档的话,你就会知道关于 GitHub 上的大部分数据,GitHub 官方都是提供了接口了的。比如我们今天要获取的数据就可以从下面这个接口拿到。
https://api.github.com/search/repositories?q=language:python+created:%3E2019-12-31&sort=stars&order=desc&per_page=10
如上所示,我们只获取语言为 Python 的开源项目,且创建时间晚于 2019-12-31,也就是 2020 年新创建的开源项目才做统计,接下来我们按照 stars 数倒序排序,取前十条记录就拿到我们需要的数据啦。
由于该接口返回的开源项目信息过于庞大,我们只取项目名称,URL,fork 数,star 数以及 watch 数。
# 获取数据
def get_data():
base_url = 'https://api.github.com/search/repositories?q=language:python+created:%3E2019-12-31&sort=stars&order=desc&per_page=10'
response = requests.get(base_url)
result = response.json()
data = {}
for item in result['items']:
data[item['name']] = [item['html_url'], item['stargazers_count'], item['watchers_count'], item['forks']]
return data
可视化
# 可视化
def show_img():
data = get_data()
names = list(data.keys())
values = [data[name][1] for name in names]
bar = (
Bar()
.add_xaxis(names[::-1])
.add_yaxis("星标数", values[::-1])
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position="right"))
.set_global_opts(
yaxis_opts=opts.AxisOpts(name_rotate=0, name="项目", axislabel_opts={'interval': -10, "rotate": 0}),
title_opts=opts.TitleOpts(title="2020 GitHub Python TOP 10"))
)
bar.render_notebook()
将获取到的数据,按照 star 数从大到小生成柱状图,如下所示:
00 Depix
伴随着移动互联网的普及,我们的生活越来越便利,衣食住行一个手机全搞定,可手机在给我们带来便利的同时,也在威胁着我们的个人隐私安全。比如很多 App 动不动就要你实名认证,甚至人脸识别等。
以至于现在的我们都变得格外的小心翼翼,有时候发个朋友圈都要打马赛克,生怕泄漏一点点隐私。
可如果现在我告诉你,「打马赛克」已经不在安全了,你想要隐藏的信息,已犹如裸奔你会作何感想。
最近 GitHub 上出现了一个火的一塌糊涂的项目,它就是号称能抹去马赛克让原图重现的神器 Depix。截至目前,该项目的星标数已经超过 14K。
上面是一个官方给出的示例图,我们可以看出使用 Depix 恢复后,基本上已经可以看清大部分内容了,太恐怖了。
01 diagrams
作为程序员的我们可能平时画图比较少,顶多也就是写写文档。但画图可是架构师必备技能之一,熟话说不想当架构师的程序员不是合格的程序员,画图我们还是有必要学习一下的。
说到画图,你肯定想到的是各种在线离线工具等,你有试过用代码来画图吗?
没错,你没有听错,用代码来画图完全可行。利用 diagrams 库,我们就可以通过以代码的方式来绘制诸如阿里云、AWS、K8S 等系统架构图。
真正做到了图表即代码,代码即图表。
02 EasyOCR
OCR (Optical Character Recognition)光学字符识别,即识别图像中的文字。
EasyOCR 就是一个识别图像中文字的库,且其是全语种的(目前涵盖 70+ 门语言,包括中文,日文,韩文,泰文)。
03 avatarify
变脸作为川剧的绝活之一,赢得了很多人的喜爱。
而 avatarify 则可以帮你在 ZOOM、skype 等视频会议软件中实现变脸,将名人的脸套在自己的脸上。想象一下,当同事和你视频会议室,你搞一个名人的脸来用是不是很酷呢。
04 PaddleOCR
同样是一个款 OCR 识图库,拥有超过 8.1K+ 的星标, 但于 EasyOCR 一比,PaddleOCR 的则就显得相形见绌了。
05 eat_tensorflow2_in_30_days
作为机器学习的必学技能 TensorFlow,其入门门槛并不低,尽管 TensorFlow2.0 宣称已经为改善用户体验做出了巨大的改进,但大家依然觉得用起来并不轻松。
而 eat_tensorflow2_in_30_days 这个项目则可以让你轻松入门 TensorFlow2.0。作为比比官方文档更容易入门的教程,其具有以下优点。
本教程按照内容难易程度、读者检索习惯和 TensorFlow 自身的层次结构设计内容,循序渐进,层次清晰,方便按照功能查找相应范例。
不同于官方文档冗长的范例代码,本教程在范例设计上尽可能简约化和结构化,增强范例易读性和通用性,大部分代码片段在实践中可即取即用。
可以看出作者是非常用心了,完完全全站在一个小白的身份角度去思考和写作的,非常适合小白跟着节奏一步步走向巅峰。
06 GHunt
这是一款可嗅探 Google 账户的 OSINT 工具,包括但不限于姓名,谷歌 ID,YouTube 频道以及其他谷歌服务等。
官方称 GHunt 可让安全团队浏览由 Google 账户创建的数据,甚至仅根据电子邮件来分析目标 Google 的轨迹。「白帽子和渗透测试人员」可以使用 GHunt 来测试所发现的电子邮件是否合理。
但我能想到的是我们的信息又要泄漏了,呃,我们的隐私保护起来怎么就那么费劲呢。
07 jd_seckill
这是一个于 2020-12-11 创建的用于在京东抢茅台的 Python 脚本。
现如今抢茅台倒卖茅台已经发展成为一个完整的生意链条了,因为这其中蕴藏着巨大的利益。茅台出厂官方指导价是 1499 元,注意,这是厂家卖给经销商的价格,普通消费者是完全买不到的。
经销售转手之后的售卖价格在 2599 元左右,而且茅台作为中国白酒的 NO.1 根本不愁销售,可以说茅台的经销商是躺着赚钱了。
如今得益于互联网的发展,各大电商平台为了留住用户纷纷推出 1499 限量抢茅台的活动,基本上全是秒杀。因为抢到之后可以轻轻松松以 2000+ 的价格出手,大把人要,500+ 大洋到手。
于是就有了 jd_seckill 这个用于自动抢茅台的脚本,但由于不可抗力,现在已经删除了,太魔幻了。
08 yolov5
这是一款目标检测神器,换言之就是要找出图片中物体的边界框,并判定框内物体的类别。比如识别图中的小汽车,猫咪等。我们都知道现在计算机视觉非常火,这就是计算机视觉领域的典型应用。
09 Bringing-Old-Photos-Back-to-Life
这是一个由微软发起的人工智能修复老照片的应用。它可以让破损、残旧的图片焕发新生,包括划痕修复,整体颜色复原和面部修复等过程,截至目前已获得 7.2K+ 的 star 数。
总结
今天和大家介绍了 2020 年 GitHub 上最火的十个 Python 项目,小伙伴们用过哪几个呢。
PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!
老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!
【代码获取方式】
识别文末二维码,回复:210107