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数据:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,948评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,353评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,245评论 4 61
  • 在遇到一个比较复杂,而自己却不清楚的事情时,闲不住的手,是最容易坏事的。 爱因斯坦说过,不要用同一个思路去解决同一...
    小小向日葵up阅读 119评论 0 0
  • 不要把你的生活排的太满,因为生活能给你的远远超出你的想象,拥抱偶然,点开人生的超链接。 2016.12.18
    刘子逸阅读 186评论 0 0