用 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)