【数据分析入门】【淘宝电商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中的键,

相关推荐
程序员的世界你不懂34 分钟前
Appium+python自动化(二十一)- Monkey指令操作手机
python·appium·自动化
belldeep1 小时前
python 在基因研究中的应用,博德研究所:基因编辑
python·基因·broad institute·博德研究所·基因编辑
XMYX-02 小时前
Python 实现一个带进度条的 URL 批量下载工具(含 GUI 界面)
开发语言·python
未来并未来2 小时前
Sentinel 流量控制安装与使用
开发语言·python·sentinel
东皇太星3 小时前
Python 100个常用函数全面解析
开发语言·python
luofeiju4 小时前
数字图像处理与OpenCV初探
c++·图像处理·python·opencv·计算机视觉
壹米饭4 小时前
Java程序员学Python学习笔记一:学习python的动机与思考
java·后端·python
电院工程师4 小时前
SM3算法Python实现(无第三方库)
开发语言·python·算法·安全·密码学
AI风老师5 小时前
通信网络基础概念
开发语言·网络·php
CodeDevMaster5 小时前
在Jupyter Notebook中使用Conda虚拟环境
python·jupyter