Kenneth Reitz 是 Python 领域的大神级人物,并且在 Github 上非常活跃,他的 Github 地址是:https://github.com/kennethreitz
用所学知识去发现 Kenneth 今天 Starred 了哪些库,并且自动在浏览器中打开这些库的地址。
问题拆解:
1. 找到github提供的API,用户star的url链接
如何阅读github提供的API文档,找到自己想要的东西,阅读官方文档一直是难点和痛点.明明知道答案就在里面藏着,但就是无能为力.
2. 用requests库下载数据,并用json()转化为字典格式
原来打算通过starred的时间和当前时间进行比较,但是发现并没有starred时间的字段,所以此方法行不通.
解决方法: 先把所有项目的id存到list中,然后不断地遍历抓取的项目id是否在数据库中,如果不在,说明是新增的,自动打开网页
3. 处理数据,遍历项目id,如果id不在数据库中,说明是刚刚star的.
4. 利用webbrowser打开网页
代码
import requests
import webbrowser
import time
api_url = "https://api.github.com/users/kennethreitz/starred"
id_list = []
id_test = [33627494, 136389792, 127933219, 131405142, 16329363, 62921553, 99652984, 100210619, 35510548, 8177778, 62182238, 53632140, 24297122, 102656963, 63522007, 73475522, 36653430, 39790596, 24924435, 77510944, 53721489, 37843831, 95817032, 127708345, 15007485, 24531005]
all_data = requests.get(api_url).json()
len(all_data)
for i in all_data:
id_list.append(i["id"])
while True:
data = requests.get(api_url).json()
for i in data:
# 测试时将id_list 换成 id_test
if i["id"] not in id_list:
url = i["html_url"]
webbrowser.open(url)
id_list.append(i["id"])
# 打开后,id_list中加入该id,否则会不断地打开同一个网页
time.sleep(100)