用API检测网页内容更新,学习过程和附带源码!
本帖最后由 世界上只有dog雄 于 2019-12-27 05:48 编辑这是学习过程的源码,目的是检测一个github项目更新提示的源码。
源码是自己看教程理解后加上的注释,不知道准不准确,小白学习如有不对的地方请老白https://attach.52pojie.cn//forum/201912/27/054741knsw6nn7spogp6hh.jpg?l指出,谢谢!
import requests
importwebbrowser
import time
api = 'https://api.github.com/repos/soimort/you-get'#API地址
web_page = 'https://github.com/soimort/you-get'#项目地址
#last_update = None
last_update = '2019-12-24T20:51:16Z'#为了测试效果直接赋值一个时间。
all_info = requests.get(api).json() #转换获取到的API数据为pyhon能识别的字典型数据结构
#dict_info=all_info.json() //相当于上面的模式"requests.get(api).json()"赋值转换
cur_update = all_info['updated_at'] """这里蕴含一个字符串也可以比大小的知识,需要相同格式的字符串比大小,是能正常比对的!
这里还用到了字典列表,all_info['updated_at']就是取了all_info里面的字典对应的键值(还没理解……)
"""
print(cur_update)
while True:#无限循环检测
if not last_update:#这里判断last_update的值是否存在
last_update = cur_update#判断两边的(不理解……)
if last_update < cur_update:#判断两边的值的大小
webbrowser.open(web_page)#如果last_update的值小于cur_upate的值则打开项目地址页面
time.sleep(600)#程序睡眠600s 也算是暂停600s再继续循环执行
>>> import datetime
>>> d=datetime.datetime.strptime('2019-12-27T08:48:13Z',"%Y-%m-%dT%H:%M:%SZ")
>>> d
datetime.datetime(2019, 12, 27, 8, 48, 13)
>>>d.timestamp()
1577407693.0
我看获取时间那里用的字符串比较,我觉得直接转换成时间戳的比较会准确一点
时间戳这里就变成数字比较了
if not last_update: # 这里是判断last_update有没有值,如果没有的话,把cur_update赋值给last_update,我的理解是做了一下初始化操作(因为只有初始化的时候有可能没值……)
然后按照这个判断逻辑,在打开网页之后应该更新last_update的值,那么while True里面可以改写成
if not last_update or last_update < cur_update:
webbrowser.open(web_page)
last_update=cur_update
time.sleep(600) 本帖最后由 世界上只有dog雄 于 2019-12-27 22:43 编辑
EnderCaster 发表于 2019-12-27 17:34
>>> import datetime
>>> d=datetime.datetime.strptime('2019-12-27T08:48:13Z ...
谢谢,指点。不过因为初学还不太懂。不知道能不能详细讲解,能注释一下就谢谢了。你没时间也没关系,也谢谢了:lol
if not last_update or last_update < cur_update:
webbrowser.open(web_page)
last_update=cur_update
time.sleep(600) 感谢分享。学习了。 学无止境!谢楼主分享! 围观学习现场.:0
学习学习,谢谢楼主的分享 是程序更新升级?(′・_・`) 好专业啊,还写了注释 神器神器 学习学习 学习学习,谢谢楼主的分享。。
页:
[1]
2