zoukankan      html  css  js  c++  java
  • 用 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)
  • 相关阅读:
    java 可伸缩阻塞队列实现
    java mysql大数据量批量插入与流式读取分析
    innodb next-key lock引发的死锁
    jremoting的功能扩展点
    java开源项目jremoting
    Linux下搭建gtk+2.0开发环境
    《程序员的办公室日常》第二回 拜师
    《程序员的办公室日常》第一回 相识
    【限时免费】近1000G JAVA学习视频下载
    裁员之后,我才明白它的重要性
  • 原文地址:https://www.cnblogs.com/Qqun821460695/p/11911658.html
Copyright © 2011-2022 走看看