Python 网络爬虫 学习笔记.CH4 API

维基百科:应用程序接口(英语:ApplicationProgrammingInterface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。

应用程序接口为:“‘电脑操作系统(Operating system)’或‘程序库’提供给应用程序调用使用的代码”。其主要目的是让应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。API本身是抽象的,它仅定义了一个接口,而不涉及应用程序在实际实现过程中的具体操作。例如,图形库中的一组API定义了绘制指针的方式,可于图形输出设备上显示指针。当应用程序需要指针功能时,可在引用、编译时链接到这组API,而运行时就会调用此API的实现(库)来显示指针。

Youtube上一个例子:你去餐厅点餐,菜单是一个应用界面,你看了菜单提出请求,告诉服务员要点啥,他将你的请求传达给后厨,然后从后厨那里把你点的菜拿给你,你不用知道服务员是怎么和后厨交流的。服务员就是个API,API可以看作一个web服务或软件组件和外界交流的协议,规定了如何发送请求和接收响应。

尽管目前不同的软件应用都有各自不同的 API,但“API”经常被看成“网络应用 API”。一般情况下,程序员可以用 HTTP 协议向 API 发起请求以获取某种信息,API 会用 XML(eXtensible Markup Language,可扩展标记语言)或 JSON(JavaScript Object Notation,JavaScript 对象表示)格式返回服务器响应的信息。尽管大多数 API 仍然在用 XML,但是JSON 正在快速成为数据编码格式的主流选择。

虽然 API 并非随处可见(这正是我写这本书的主要动机,因为即使你找不到 API,也可以用爬虫采集信息),但是你可以从 API 里获取许多信息。API 很容易使用。其实你只要在浏览器里输入下面的网址就可以发起一个简单的 API 

请求:1  http://freegeoip.net/json/50.78.253.58 

应该会出现下面的结果:{"ip":"50.78.253.58","country_code":"US","country_name":"美国","region_code":"MA","region_name":"Massachusetts","city":"Chelmsford","zipcode":"01824","latitude":42.5879,"longitude":-71.3498,"metro_code":"506","area_code":"978"}

你可能会想,这不就是在浏览器窗口输入一个网址,按回车后获取的(只是 JSON 格式)信息吗?究竟 API 和普通的网址访问有什么区别呢?如果不考虑 API 高大上的名称,其实两者没啥区别。API 可以通过 HTTP 协议下载文件,和 URL 访问网站获取数据的协议一样,它几乎可以实现所有在网上干的事情。API 之所以叫 API 而不是叫网站的原因,其实是首先 API 请求使用非常严谨的语法,其次 API 用 JSON 或 XML 格式表示数据,而不是HTML 格式。

Google map API:

https://console.developers.google.com 登录Google 账号,启用Google Maps Geocoding API,根据提示创建新的 API 密钥。可以在浏览器里实现一个简单的 GET 请求,把街道地址(这里用的是 Boston Museum of Science,里面有 Science Park)解析成纬度和经度:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=(你的API 密钥)

得到json数据:

Python 网络爬虫 学习笔记.CH4 API_第1张图片

你可能感兴趣的:(Python 网络爬虫 学习笔记.CH4 API)