Excel中怎样计算面积? Excel制作计算圆面积工具的教程-英雄云拓展知识分享
106
2023-11-13
【摘要】 本书摘自《Python网络爬虫 从入门到精通》一书中第2章,第6节,吕云翔、张扬和韩延刚等编著。
2.6 使用API
2.6.1 API 简介
正如上文所说,所谓的采集“网络数据”不一定必须是从网页中抓取数据,而API (Application Programming Interface, 应用编程接口)的用处就在这里: API 为开发者提供了 方便友好的接口,不同的开发者用不同的语言都能获取同样的数据,使得信息有效地被共 享。目前各种不同的软件应用(包括各种编程模块)都有着各自不同的 API, 但这里讨论的 API 主要是指“网络 API”, 它可以允许开发者用 HTTP 协议向 API 发起某种请求,从而获 取对应的某种信息。目前 API 一般会以 XML( Extensible Markup Language, 可扩展标记语 言)或者 JSON(JavaScript Object Notation) 格式来返回服务器响应,其中 JSON 数据格式 更是越来越受人们的欢迎。
API 与网页抓取看似不同,但其流程都是从“请求网站”到“获取数据”再到“处理数 据”,两者也共用许多概念和技术不过很显然, API 免去了开发者对复杂的网页进行抓取时 的很多麻烦。API 的使用也和“抓取网页”没有太大区别,第一步总是去访问一个 URL 地 址,这和使用HTTP GET 来 访 问URL 一模一样。如果非要给 API 一个不称为“网页抓取” 的理由,那就是 API 请求有自己的严格语法,而且不同于 HTML 格式,它会使用约定的 JSON 和 XML 格式来呈现数据。图2-10是微博开发者 API 的文档页面。
使用 API 之前,开发者需要先在提供 API 服务的网站上申请一个接口服务。目前国内 外的 API 服务都有免费和收费至少两种类型(收费服务的目标客户一般都是商业应用和企业 级开发者),使用 API 时需要验证客户身份。通常验证身份的方法都是使用 token, 每次对 API 进行调用都会将 token 作为一个 HTTP 访问的参数传送到服务器。这种 token 很多时候 以 “API KEY” 的形式来体现,可能是在用户注册(对于收费服务而言就是购买)该服务时 分配的固定值,也可能是在准备调用时动态地分配。下面是一个调用API 的例子:
http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b1b15e88fa79 7225412429c1c50c122a1
返回的数据是:
{"coord":{"lon":-0.13,"lat":51.51},"weather":[{"id":300,"main":"Drizzle",
"description":"light intensity drizzle","icon":"09d"}],"base":"stations","main": {"temp":280.32,"pressure":1012,"humidity":81,"temp_min":279.15,"temp_max":281.15},"vi sibility":10000,"wind":{"speed":4.1,"deg":80},"clouds":{"all":98},"dt":1485789600,"sy
s":{"type":1,"id":5091,"message":0.0103,"country":"GB","sunrise":1485762037,"sunset": 1485794875},"id":2643743,"name":"London","cod":200}
这是 OpenWeatherMap 网站提供的查询天气的API,appid 的值就扮演了 token 的角色。
访问该网站并注册,开启免费服务后就能够得到一个 API KEY (见图2-11),服务器会识别出这个值,然后向请求方提供 JSON 数据。
这样的 JSON 数据格式会在本书中经常出现,实际上,这正是网络爬虫常常需要应对的 数据形式。JSON 数据的流行与 JavaScript 的发展密切相关,当然,这也并不是说 XML 就不 重要。
不同的 API 虽然有着不同的调用方式,但是总体来看是符合一定的准则的。当用户 GET 一份数据时, URL 本身就带有查询关键词的作用,很多 API 通过文件路径 (path) 和 请求参数 (Request parameter) 的方式来指定数据关键词和API 版本。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~