用 Python 自动监测 GitHub 项目更新

前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: GitPython

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

项目概述

要知道Github项目的更新,提醒方式是邮箱,而大家平时都是不怎么用邮箱的!

那么,如果项目更新,我们怎么能及时的发现,并打开项目主页呢?

在这里插入图片描述

实现过程

1)获取数据

在这里插入图片描述

Github官方提供了详细的数据接口,并且数据是以Json字符串的方式保存的。

在这里插入图片描述

每一个项目的数据地址,类似于本地磁盘目录。

在这里插入图片描述

我们通过数据接口的url地址,就可以获取到更新时间。

 1 import request
 2  3 # 1.Github项目及API接口数据
 4 api = 'https://api.github.com/repos/kenwoodjw/python_interview_question'
 5 web_page = "https://github.com/kenwoodjw/python_interview_question
 6  7 # 2.发送请求,获取数据
 8 all_info = requests.get(api).json()
 9 10 # 3.解析想要的数据,并打印
11 cur_update = all_info['updated_at']
12 print(cur_update)

 

2)定时监测数据变化 3)打开网页

在这里插入图片描述

设置一个循环,每隔10分钟获取一次update_at的数据,如果前后时间不一致,说明数据更新,并自动打开项目主页。

 1 while True:
 2  3     all_info = requests.get(api).json()
 4     cur_update = all_info['updated_at']
 5     print(cur_update)
 6  7     # 假设第一次运行之前,不知道上次的更新时间
 8     # 如果last_update 为 none,会执行下面的语句,把当前的时间给到上次时间
 9     if not last_update:
10         last_update = cur_update
11 12     # 第一次两个时间相等,不会执行
13     # 假设10分钟后,cur_update更新,那么就会自动打开网页
14     # 接下来,把 当前时间 赋值 给上次时间
15     # 开始新一轮的监测
16     if last_update < cur_update:
17         webbrowser.open(web_page)
18         last_update = cur_update
19 20     # 间隔 10分钟,再次while循环,观察新的更新时间是否发生变化
21     time.sleep(600)

 

posted @ 2019-11-22 15:10  有趣的Python  阅读(1440)  评论(0编辑  收藏  举报