https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
让这个可爱的宝藏女孩在努力的道路上与你一起同行!
如有转载,请注明出处(如不注明,盗者必究)
目录
- 一、前提准备:GitHub简介
- 二、上代码
- 2.1处理响应
- 2.2返回每个仓库的特定信息
- 2.3监视API的速率限制
一、前提准备:GitHub简介
GitHub(https://github.com/)是一个面向开源及私有软件项目的托管平台。GitHub上的项目都存储在仓库中,包含与项目相关联的一切:代码,项目参与者的信息,问题和bug报告等等。对于喜欢的项目,GitHub用户可以给它加星(star)以表示支持,用户还可以跟踪他可能想使用的项目。
先看看这个网址https://api.github.com/search/repositories?q=language:python&sort=stars
这个调用返回GitHub当前托管了多少个Python项目,还有最受欢迎的Python仓库信息,下面来仔细研究这个调用。
https://api.github.com/:将请求发送到GitHub网站中响应API调用的部分
search/repositories:让API搜素GitHub是上的所有仓库
repositories后面的?:指出要传递一个实参
q=:指定查询
language:python:获取主要语言为Python的仓库的信息
&sort=stars:指定项目按照其获得的星级进行排序
搜索结果如图
total_count:总共有多少项目
incomplete_results:不完整的结果=false 表明请求是成功的
items:包含GitHub上最受欢迎的Python项目的信息
接下来,我们将编写一个程序,它将自动下载GitHub上星级最高的Python项目信息。
二、上代码
2.1处理响应
# coding = utf-8import requests# 执行api调用并存储响应
url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
r = requests.get(url)# r.status_code属性:状态码为200表示请求成功
print("Status code:", r.status_code)# 将api响应存储在一个变量中(这个api返回json格式的信息,因此我们使用方法json()将这些信息转换为python字典)
response_dict = r.json()
# 打印与'total_count'相关联的值,指出GitHub总共包含了多少个Python仓库
print("Total repositories:", response_dict['total_count'])# 探索有关仓库的信息
repo_dicts = response_dict['items']
print("Repositories returned:", len(repo_dicts))"""研究第一个仓库"""
repo_dict = repo_dicts[0]
# 打印这个字典的键数,看看其中有多少信息
print("\nKeys:", len(repo_dict))
# #打印这个字典的所有键,看看其中有哪些信息
# for key in sorted(repo_dict.keys()):
# print(key)# 表示第一个仓库的字典中与很多键相关联的值
print("\nSelected information about first repository:")
# 打印项目的名称
print('Name:', repo_dict['name'])
# 项目所有者是用一个字典来表示的,因此我们使用键owner来访问表示所有者的字典,再使用键key来获取所有者的登录名
print("Owner:", repo_dict['owner']['login'])
# 打印获得了多少个星的评级
print("Stars:", repo_dict['stargazers_count'])
#打印项目再GitHub仓库的URL
print("Reponsitory:",repo_dict['html_url'])
#显示项目的创建时间
print("Created:", repo_dict['created_at'])
#显示项目最后一次更新的时间
print("Updated:", repo_dict['updated_at'])
#打印仓库的描述
print("Description:",repo_dict['description'])
运行结果
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
让这个可爱的宝藏女孩在努力的道路上与你一起同行!
如有转载,请注明出处(如不注明,盗者必究)
2.2返回每个仓库的特定信息
# coding = utf-8import requests# 执行api调用并存储响应
url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
r = requests.get(url)# r.status_code属性:状态码为200表示请求成功
print("Status code:", r.status_code)# 将api响应存储在一个变量中(这个api返回json格式的信息,因此我们使用方法json()将这些信息转换为python字典)
response_dict = r.json()
# 打印与'total_count'相关联的值,指出GitHub总共包含了多少个Python仓库
print("Total repositories:", response_dict['total_count'])# 探索有关仓库的信息
repo_dicts = response_dict['items']
print("Repositories returned:", len(repo_dicts))"""研究第一个仓库"""
repo_dict = repo_dicts[0]
# 打印这个字典的键数,看看其中有多少信息
print("\nKeys:", len(repo_dict))
# #打印这个字典的所有键,看看其中有哪些信息
# for key in sorted(repo_dict.keys()):
# print(key)# 表示第一个仓库的字典中与很多键相关联的值
print("\nSelected information about first repository:")for repo_dict in repo_dicts:# 打印项目的名称print('Name:', repo_dict['name'])# 项目所有者是用一个字典来表示的,因此我们使用键owner来访问表示所有者的字典,再使用键key来获取所有者的登录名print("Owner:", repo_dict['owner']['login'])# 打印获得了多少个星的评级print("Stars:", repo_dict['stargazers_count'])# 打印项目再GitHub仓库的URLprint("Reponsitory:", repo_dict['html_url'])# 打印仓库的描述print("Description:", repo_dict['description'])
运行结果
2.3监视API的速率限制
大多数API都存在速率限制,要获悉你是否接近了GitHub的限制,在浏览器中输入https://api.github.com/rate_limit,也可以直接点击此处便可以得到速率限制信息
{"resources": {"core": {"limit": 60, "remaining": 60, "reset": 1598258938},"graphql": {"limit": 0, "remaining": 0, "reset": 1598258938},"integration_manifest": {"limit": 5000, "remaining": 5000, "reset": 1598258938},"search": {"limit": 10, "remaining": 10, "reset": 1598255398}},"rate": {"limit": 60, "remaining": 60, "reset": 1598258938}}
如图可知,极限为每分钟处理10个请求,而在这一分钟内,我们还可以执行10个请求,reset值指的是配额将重置的Unix时间或新纪元时间(1970年1月1日午夜后多少秒)。用完配额后,你将收到一条简单的响应,由此知道API已到达极限。到达极限后,你必须等待配额重置
注意:很多API都需要你注册获得API密匙后才能执行API调用。
学《python编程从入门到实战》17章第一节。
以上就是全部内容啦,如果有不懂的小伙伴欢迎提出来傲!咱一起解决