原标题:听说你没有python项目可做,我教你个方法

学习了一段时间的Python,最近出现了“饥荒”,感觉需要多看些代码,多学习学习别人做些什么,但却不知道做点什么来进行练习。

说到看代码,我就想到了全球最大的同性交友网站GitHub。

在GitHub上面找项目还不能漫无目的的去找啊,毕竟这是一个大宝库,里面的内容非常丰富;

不仅仅是有Python,还有JS,JAVA等很多很多的语言,如果一直盲目的看下去,会浪费大量的时间。

所以我就打算写一个小爬虫,来爬取一下GitHub上面我想要的小项目。

·首先既然是要练习python的项目,肯定语言是Python;

·其次,既然是小项目,那代码不会太长,我这里设置为150K-200K的文件大小,这样应该项目也会比较小;

·最后,我如果获取的是整个GitHub上面的这个大小的python项目,对我来说也是海量的,所以要限制数量,我这里限制为最近一个月发布的30个项目。

好了这就是我的需求了,一共三点,同样我们要去考虑一下,这三点的内容应该如何应对。

首先第一个就是怎么去找到所有的python项目呢?在这里我们使用了GitHub的API来获取项目,那首先来看一下API的形式。

https://api.github.com/search/code?q=language:想找的语言

这个输入了之后,就可以找到想找的语言的所有项目了。

但找到了并没有结束,还需要给爬下来,那这里面选择的是requests库,通过requests对网页进行访问,获取数据:

import requests

GetCodeApi = "https://api.github.com/search/code?q="

GetRepoApi ="https://api.github.com/search/repositories?q=language:python"

在整个API中,设置的条件还有三个还要提供文件大小以及目录:

https://api.github.com/search/code?q=language:语言+size:大小+repo:目录

这里大家可能比较好奇为什么我可以构建出来这样的一个API,实际上是通过GitHub的API接口网站来找的,这里有一个例子:

我们可以看到里面有很多的字段,比如说我选中的这个字段,实际上就代表了这个文件的大小,那也是符合我们需要的字段,那就需要在这个API中体现出来。

repo这个参数在哪里呢?实际上这个参数在html_url中:

当然啦,你要是认为哪个repo是和full_name一样的话,也是可以的,其实我最开始也是这么认为的。

不过后来我看到了下面这个东西,就认为上面的那个html_url这个更为靠谱些,就选择它了。

后面全部都是这个东西,那就是我们所需要的了。

下面我们就要建立一个函数,三个参数是需要我们自己输入的。

def get_code(language, size, repo):

这三个参数都是为了组成URL的,那这里面我们也要写上URL的内容:

url = GetCodeApi +"language:" + language + "+size:" + size +"+repo:" + repo

这样就可以访问GitHub的接口了,但是我们要用它,读取这个JSON内容:

info =requests.get(url).json()

外加一个循环来进行重复性的操作:

if 'items' in info:

for i ininfo['items']:

print(i['html_url'])

构建完了整个的函数。下面放上完整版:

def get_code(language, size, repo):

url = GetCodeApi +"language:" + language + "+size:" + size +"+repo:" + repo

# 访问GitHub接口

info =requests.get(url).json()

if 'items' in info:

for i ininfo['items']:

print(i['html_url'])

好,构建完了这个之后,我们就要进行下一步了,在上一步中我们实际上解决了两个问题;

一个是如何查找所有的python语言的项目,第二个是怎么限制文件的大小。

接下来需要解决的就是判断时间的问题,我们需要找到JSON里面写的这个:

方框中这两个值比较重要,第一个带黄底的是建立时间,第二个是更新时间。

框选两个是方便我们进行筛选,如果想找建立时间的,就用created_at进行判断,如果想找更新时间的就用updated_at来判断。

def get_project(FindTime):

info = requests.get(GetRepoApi).json()

for I in info[‘items’]:

created_time = i[‘created_at’]

当然了,这里面我们找的是建立时间的,也可以找更新时间的(更新时间的感觉项目会更多一些),

如果要是更新时间的就将created_at改为updated_at就可以了。

if created_time > FindTime

如果建立时间大于查找时间的时候,就执行下面的内容(这里给内容直接写死了,大家可以开动一下脑筋改一下~改为自己输入哦~):

language ="python"

size = "<200"

现在看到其实语言和size写死了,但是这个repo真的不能写死啊,这时候上面的截图里面有些html_url的后面箭头指的是repo的,那我们需要提取出来:

repo =i['html_url'].replace("https://github.com/", "")

这次就要激活一下上面写的查找函数了:

get_code(language,size, repo)

执行这个函数就OK了,但是这里面有个问题,就是这个时间的问题。

时间推荐直接手动修改字符串,例如get_project(‘2019-02-12T00:00:00Z’)

好,那就给这部分的代码完整版放出来咯

def get_project(FindTime):

info = requests.get(GetRepoAPI).json()

for i in info['items']:

created_time =i['created_at']

if created_time >last_week:

language ="python"

size ="<200"

repo =i['html_url'].replace("https://github.com/", "")

get_code(language,size, repo)

这样我们就有取之不尽,用之不竭的小项目可以模仿,可以学习咯~

输出的结果是这样的:

最后,我将继续扮演一个小白,努力创造一个努力学习的小白形象,技术代码两开花,弘扬中华文化,希望大家多多支持啊~返回搜狐,查看更多

责任编辑:

python怎么做项目_听说你没有python项目可做,我教你个方法相关推荐

  1. python 自动化框架打包_听说很多人都不会打包,教你Python实现前端自动化打包部署!...

    作为一名专职前端开发的我,为了帮助解决目前工作中的一些繁琐的工作(主要是处理 excel数据),解放程序员双手,前阵子就刚刚入了 python 的坑,毕竟也算是门工具语言,都已经加入少儿编程了,哈哈哈 ...

  2. 学python去哪做项目_有哪些适合 Python 刚入门者去做的项目?

    学软件开发的都知道实战项目对于学好一门语言是很重要的.在这里可以向大家推荐几个Python实战项目 项目1.Python 图片转字符画 本课程用 50 行 Python 代码完成图片转字符画小工具.通 ...

  3. python 做网页_听过最近Python过气了?

    Python过气了? 怎么可能?! 会Python的人,工作都不会太差.作为职场"新晋网红",Python在各行各业中扮演着越来越重要的角色. 曾经Excel在金融.数据岗位&qu ...

  4. 手机python软件怎么创建项目_创建成功的 Python 项目

    创建成功的 Python 项目 Patrick Altman 2012 年 3 月 14 日发布 Python 开源项目的生态系统丰富多样.您可以在这一雄厚的基础上完成下一个开源项目的生产.此外,这也 ...

  5. python3能做什么_你都用 Python 来做什么?

    python能做的有很多,我这里之阐述我自学的数据分析的内容,这也是我学习利用python进行数据分析的过程,如果要看实践可以直接看项目篇 数据分析中常用的软件是jupyter notebook,而应 ...

  6. python做兼职_“隐形贫困者”自学Python做副业,教你如何月入10000+

    现在的年轻人总是觉得攒不下钱,虽然表面风光,每天出入高级CBD,可是几乎每个人都是月光族,这一类人被定义为"隐形贫困者",原因是什么呢?根据小编的分析,现在人们对生活质量要求普遍提 ...

  7. 用python给女朋友惊喜_如和用python给女朋友做个专属她的软件

    如和用python给女朋友做个专属她的软件 在学习python的路上如果觉得枯燥就可以想我一样做一些有趣的事情就不会无聊了 python是一门及其有趣的语言. 人们都喜欢记住一些重要的日子,比如说跟女 ...

  8. vuecli打包后的dist目录无法访问_听说很多人都不会打包,教你Python实现前端自动化打包部署!...

    作为一名专职前端开发的我,为了帮助解决目前工作中的一些繁琐的工作(主要是处理 excel数据),解放程序员双手,前阵子就刚刚入了 python 的坑,毕竟也算是门工具语言,都已经加入少儿编程了,哈哈哈 ...

  9. python支持esc退出_听说你不会用mac电脑装Python?看了这篇文章,秒懂!

    有很多学员,来咨询老师mac下的环境安装,于是小简老师就出了这篇文章. 如果你是mac电脑,那么本文是非常全面的python环境安装指南,引领你在MAC下玩转python. 第一部分 mac自带py2 ...

最新文章

  1. 如何异地加载 Spring Boot 配置文件?
  2. centos7安装python-pip
  3. Linux Shell常用技巧(四)
  4. hdu 6194 后缀数组
  5. ios下使用rsa算法与php进行加解密通讯
  6. Windows 7 :微软目前最好的操作系统
  7. Reading and Writing to Binary Files
  8. Linux磁盘阵列技术详解(三)--raid 5和raid 10的创建 推荐
  9. 【刘文彬】【精解】EOS TPS 多维实测
  10. [转] PyTorch 0.4新版本 升级指南 no_grad
  11. 数据分析没有思路怎么办
  12. 干货丨2021年UI设计风格新风向新趋势
  13. 将DataFrame表格以图片形式输出
  14. 毕竟,连少宇都无法击败的人,是没有资格做自己的对手的
  15. python如何学 Python主要能做什么
  16. Sql Server 2012 中文软件和安装教程
  17. Android 五星好评简单实现
  18. 【Redis】懒惰删除
  19. python 梳理:安装并开始使用
  20. mysql lag和lead_Oracle的LAG和LEAD分析函数

热门文章

  1. 经济学原理 下载 曼昆_2021南开经济学考研全年规划
  2. eval函数linux,Python中的eval()、exec()及其相关函数
  3. html scale方法的作用,HTML Canvas scale() 方法
  4. php mysql长连接聊天室_PHP之探索MySQL 长连接、连接池
  5. android 界面长按,Android 主界面长按创建快捷方式
  6. 计算机联用测定无机盐溶解热测试题,计算机联用测定无机盐溶解热
  7. jwt java 项目实例_JWT(JsonWebToken)+SpringMVC项目demo
  8. mac nginx 非brew安装_Nginx服务器环境手动安装Discuz! Q非详细教程
  9. uc3842改可调电源教程_明纬开关电源改可调详细教程
  10. 2048游戏c语言linux简易代码,C语言实现2048游戏代码