第17章 使用API

17.1 使用Web API

Web API是网站的一部分,用于与使用非常具体的URL请求特定信息的程序交互,这种请求称为API调用。

1、GIT和GITHUB

Git是一个分布式版本控制系统,让程序员团队能够协作开发项目。

GitHub上的项目都存储在仓库中,后者包括与项目相关联的一切:代码、项目参与者信息、问题或bug报告等。

2、使用API调用请求数据

URL:https://api.github.com/search/repositories?q=language:python&sort=stars针对该API调用进行分析:

https://api.github.com/ ---- 将请求发送到GitHub中响应API调用部分。

search/repositories/ ---- 搜索所有的仓库repositories

? ---- 指出我们要传递一个实参

q ---- 表示查询,用等号表示查询指定要求

language=python ---- 获取主要语言为python的仓库信息

&sort=stars ---- 按照其星级进行排序。

3、安装requests

4、处理API响应

request.get()获取响应,

调用获取响应后.status_code属性查看调用是否成功,如果返回值为200,则响应成功。

响应对象是jsonresponse,直接调用response.json()方法将其转换为python下字典。

5、处理响应字典

6、概述最受欢迎的仓库

均对响应数据做一些简单的输出。

7、监视API的速率限制

大多数API都存在速率限制,即你在特定时间内可执行的请求数存在限制。

17.2 使用Pygal可视化仓库

导入pygal以及要应用于图表的Pygal样式。

建立两个空列表,包含名称和星数。

遍历items列表,在两个列表中添加元素。

使用LightenStyle类定义一种式样,添加颜色,并传递实参base_style=LightColorizedStyle类。

使用pygal.Bar()类创建条形图。 PS:注意这里导入pygal需要分两次导入吗?有什么好处吗?

x_labels=names add中加入实参stars。

1、改进Pygal图表

创建一个pygal下Config类的实例,修改其中属性可以定制图表外观。

修改各种属性后,将Config的实例作为第一个实参传递到Bar()中。

2、添加自定义工具提示

对add()方法中传入字典列表(注意还是列表,但是是字典列表)而不是值列表,则在鼠标移到相应的柱形图上时会显示字典中label的值。字典中的的值的键为‘value',相对应的标签的键为'label'。

3、根据数据绘图

根据上述自定义的方法,将星值和标签传递给相应的键,形成字典列表,传递给add()方法。

4、在图表中添加可单击的链接

只需在字典列表中创建一个键为‘xlink',值为相应url的键值对。

17.3 Hacker News API

概述:在url:https://hacker-news.firebaseio.com/v0/topstories.json链接的API下返回的响应是一个元素为一串串数字的json文件,通过response.json()将其转换为列表,进而通过遍历列表中的每个元素并通过url组装,即:'https://hacker-news.firebaseio.com/v0/item'+遍历的元素变量+'.json'来重组一个热点文章的API,再通过获得该组装url的响应,获得一个类似字典的json文件,通过response.json()转换为字典文件。再通过整理后从中筛选出需要的数据。

在我们不确定字典中是否有某个键时,可以通过dict.get('key',x)方法来确定,当字典中存在键key时将返回相应的值,如不存在键key的时候返回指定的x。

在模块operator下的itemgetter()函数,用来获取对象某个位置的数据,在本例中,通过itemgetter('comments')来获得评论数的值,将该值作为key来sorted整理列表,同时整理的方式为倒过来的,即reverse=True。即创建的字典列表通过评论数由高到低排列。

关于如何获得站点的API接口,需要通过在network下进行抓取,意思可能是要去学习html或者php语言了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不贰笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值