【数据分析入门】【淘宝电商API接入与电商数据分析】初识Web API(一)

今天开始我们将学习如何使用Web应用变成借口(API)自动请求网站到特定信息而不是整个网站,再对这些信息进行可视化。由于这样编写到程序始终使用最新到数据来生成可视化,因此即便数据瞬息万变,它呈现到信息也都是最新的。比如,我们接入淘宝平台API接口即可实时监控某个品牌店铺产品的实时销量和价格,实现可视化的查看商品的价格和销售虚线。

使用Web API

Web API是网站的一部分,用于与使用非常具体的URL请求特定信息定程序交互。这种请求称为API调用。请求的数据将以易于处理的格式(如JSON或CSV)返回。依赖于外部数据源的大多数应用程序都依赖于API调用,如集成社交媒体网站的应用程序。

Git和Github

本章的可视化将基于来自Github的信息,这是一个让程序员能够协作开发项目的网站。我们将使用Github的API来请求有关该网站中Python项目的信息,然后使用Pygal生成交互式可视化,以呈现这些项目的受欢迎程度。关于Git的详细内容,后续我会出一篇独立的分享,这次我们只使用Github的API就可以啦。

使用API调用请求数据

Github的API让你能够通过API调用来请求各种信息,要知道API调用是什么样的,请在浏览器地址栏输入如下地址并回车:

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表示查询,而等号让我们能够开始指定查询(q=)。通过使用language:python,我们指出只想获取主要语言为Python的仓库信息。最后一部分(&sort = stars)指定将项目按其获得的星级进行排序。

下面显示来响应的一部分,从响应可知,该URL并不适合人工输入。

从第二行可知,目前GitHub总共有6174026个Python项目。"incomplete_results" 的值为True,证明GitHub无法全面处理该API,这里我们只分析部分数据。接下来的列表中展示了返回的"items",其中包含GitHub上最受欢迎的Python项目的详细信息。

安装requests

requests包让Python程序能够轻松地向网站请求信息以及检查返回的响应,首先来新建一个项目并安装requests包。

pip3 install requests

处理API响应

下面来编写一个程序,它执行API调用并处理结果,找出GitHub上星级最高的Python项目:

import requests#执行API调用并存储响应url='https://api.github.com/search/repositories?q=language:python&sort=stars'r = requests.get(url)print("Status code:",r.status_code)#将API响应存储在一个变量中response_dict = r.json()#处理结果print(response_dict.keys())

首先我们导入模块requests,接着我们存储API调用的URL,然后使用requests来进行调用。我们调用get()并将URL传递给它,再将响应对象存储在变量r中。响应对象包含一个名为status_code的属性,它让我们知道请求是否成功了(状态码200表示成功)。最后我们使用方法json()将这些信息转换为一个Python字典,并将转换得到的字典存储在response_dict中,打印response_dic中的键,

相关推荐
游王子2 小时前
Python NumPy(6):修改数组形状、翻转数组、修改数组维度
开发语言·python·numpy
枫叶落雨2222 小时前
15JavaWeb——Maven高级篇
linux·python·maven
小松聊PHP进阶3 小时前
万字总结PHP与JavaScript、PHP与PHP 实现开箱即用的AES、RSA和较为安全的自定义加解密算法
前端·后端·php
流形填表3 小时前
用FormLinker实现自动调整数据格式,批量导入微软表单
python·microsoft·flask
又是被bug折磨的一天3 小时前
互联网行业常用12个数据分析指标和八大模型
数据挖掘·数据分析
databook4 小时前
manim边学边做--局部变换
python·动效
qwe3526334 小时前
自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数
python
广药门徒4 小时前
用Python替代OpenMV IDE显示openmv USB 图像
开发语言·ide·python
zxfeng~5 小时前
深度学习之“缺失数据处理”
人工智能·python·深度学习
Ronin-Lotus5 小时前
深度学习篇---深度学习框架
人工智能·pytorch·python·深度学习·tensorflow·paddlepaddle