数据分析--使用Web API(应用编程接口)以自动请求GitHub网站的特定信息为例爬取数据,附完整的Python代码详解

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章第一节。
以上就是全部内容啦,如果有不懂的小伙伴欢迎提出来傲!咱一起解决

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IndexError: list index out of range--Python报错原因及解决办法

报错原因 一、括号里面的索引index超出范围 例如:要查找最后一个明星的名字‘Hannah Quinlivan’,Index输入为4。在Python中,第四个元素的索引为3,因为索引是从0开始的。如果想要找最后一个,但是不知道索引为几的时候…

ERROR: Cannot unpack file C:\Users\admin\AppData\Local\Temp\pip-unpack-yo8pmupp\simple.htm (download

出现报错 出现了这个报错 ERROR: Cannot unpack file C:\Users\admin\AppData\Local\Temp\pip-unpack-yo8pmupp\simple.htm (downloaded from C:\Users\admin\AppData\Local\Temp\pip-req-build-bscsadf5, content-type: text/html); cannot detect archive format ERROR: Ca…

创建数据库python: can‘t open file ‘manage.py‘: [Errno 2] No such file or directory报错

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 在创建数据库时运行代码 python manage.py migrate运行结…

Django的简单介绍及虚拟环境的搭建、创建项目,数据库(Windows版超级详细)--Python web应用程序开发(Python实战)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录Djanggo简介建立虚拟环境(Anaconda终端下)激活虚拟环境…

教你用8行代码将word转换为pdf格式 及 6行代码实现批量将word转换为pdf格式--python实用小技能get起来

目录将word转换为pdf格式安装pywin32上代码运行结果批量实现word转pdf安装docx2pdf上代码运行结果将word转换为pdf格式 安装pywin32 代码(Anaconda终端下) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsingh…

用Python高效地将 多个excel表快速汇总成一个excel表--python办公实用小技能分享

相信很多友友们都遇到一个同样的问题,就是将多个excel表汇总成一个表效率极低,不止如此,还要看有没有复制错。在学校担任多种职务的我总是要汇总很多个表格,早就用python来想解决这个问题,经过借鉴网上的多位大咖的代码…

教你如何使用 Python 将 pdf 文档进行 加密 解密——python实用小技能分享

上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式(点击这里),这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密,哈哈哈 希望帮到更多人! 在Anaconda终端下输入代码 pip install --u…

简历避免采坑总结——为什么你的简历杳无音信?程序员的简历该怎么写?看这一篇就够了!毕业生快进 (待更新)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 这段时间熬夜看很多位程序员大佬的简历,也看了…

Git最新版下载(安装包)——阿里镜像快速下载

官网下载 https://git-scm.com/downloads 但是官网下载太慢了,我估计我这网络肯定得下载好几天呢,可能大家也是,于是我找到阿里镜像 下载最新版的Git,利用阿里镜像会下载的很快 https://npm.taobao.org/mirrors/git-for-windows…

[Git GitHub] Windows下安装git,从0开始搭建git环境(配置环境变量+设置git-ssh key...配置)(超全版)

目录前提准备安装GitGit配置配置环境变量git配置ssh认证配置过程配置邮箱和用户名(个人身份)文本换行符配置前提准备 下载地址:点击此处 点击Windows进行下载。 若下载比较慢,点击此处 安装Git 下载之后,双击Git-2…

如何将本地文件利用git工具上传到github仓库中(超详细+最新版)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 如何将本地文件利用git工具上传到github仓库中一、初次使用…

教你如何申请注册微软邮箱【快速接收发送国外邮件】

如果要收发国内的邮件。网易和QQ不错的选择,如果接受国外邮件,还是国际性的公司,微软的outlook据说用户体验感比较好,先申请着,以备不时之需! 申请地址:https://outlook.live.com/owa/ 点击创…

用python实现时间的动态(动态时钟)+ 算出某年某月星期几的所有日期

一个玩得好的朋友突然大晚上的给我布置作业,吓得我精神抖擞。他的原话是: 感觉发现新大陆了,利用小海龟画的,上次玩海龟已经是几个月之前的事情了 https://blog.csdn.net/hanhanwanghaha/article/details/106211876 话不多说&…

如何利用python将mp4文件转换为gif文件 + 代码分享 另附在线转换网址

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 想要将自己的视频设置为gif格式,但上网查了一下…

高教杯数学建模国赛论文模板+2013到2019年的国赛优秀论文+2020年数学建模论文心得---数学建模友友必看

又是一年一度的数学建模国赛,我这次是二战国赛了,不知道为什么,特别喜欢数学建模的氛围,三个人一起努力,通宵奋战,哈哈哈,也许我就是喜欢这种吃苦的感觉吧,哈哈哈(感觉自…

一年内英语四六级一次性通过,我是怎么做到的?英语听力阅读技巧干货分享!(2021年8月份最新)

要考四六级啦,要是说这几天就记几千个单词那还是有点不现实,那咱们一起来抱技巧的佛脚吧哈哈哈哈! 我四级和六级一次过,听力占了很大部分原因,我的阅读的分每次都是最低的,我也不知道为什么,我…

GIt——怎样克隆远程仓库到本地(敲详细)

克隆远程仓库,说得容易理解的话就是下载网上的东西到本地。步骤还是比较简单,之前我尝试过用SourceTree,我去那是真的麻烦,用可视化软件还不如自己敲代码,反正代码也不难,就一句话而已! 步骤 首先你打开你…

爬取B站免费视频--python代码赶快拿

首先在终端下面安装you_get 安装代码: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn you_get比如说我要下载《周杰伦演唱会一路向北》这是我非常喜欢的一个视频 地址是这个: https://www.bilibi…

带你一起学软件工程的专业英语!(IT行业、四六级党快记起来)《软件工程专业英语》第一单元:启动软件项目——单词、短语、名词缩写、难句、备忘录的基本格式样本(必备技能)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 英语是全球IT行业的行业语言,英语技能是IT行业…

U盘有kabe.bat文件(可能是病毒文件)——如何保护优盘?快get起来

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 众所周周知,随着U盘、移动硬盘、存储卡等移动存…