这多是我用过最“强大”的API:Marvel API

咱们在编程教室中写过很多使用 API 开放接口 的案例,好比:编程

但以上这些都不是我今天要说的。今天要说的这个接口,之因此称为“强大”,由于 它返回的内容里蕴含了未知的巨大能量,大到能够轻松毁灭宇宙 N 次……小程序

没错,这就是 Marvel 向开发者开放的 API缓存

官网地址:https://developer.marvel.com/ide

数据涵盖的内容主要是 Marvel 相关的漫画做品信息,包含:工具

  • 1491 个 角色
  • 43759 本 漫画
  • 6200 个 创做者
  • 10713 个 系列
  • 96740 个 故事
  • 75 个 事件

以及这几样数据之间的相互关联关系。好比你能够经过一个角色查到其所出场的事件,或者一个创做者所参与过的角色。学习

我作了一个简单的小演示,可经过名字查询相关的角色:网站

以及经过角色 ID 查询其出现的漫画:人工智能

Marvel API 不是彻底公开访问,须要先申请 ,不过没有任何门槛(只要看得懂英文)。使用接口时,常规操做是按照官方提供的方式, 将申请得到的公钥、密钥加上时间戳进行 MD5 加密,做为权限的验证放在参数里,经过 GET 方式进行请求 (能够用 requests)。加密

而我这里用了一个第三方封装好的 Python 库 marvel ,省了很多工做,因此核心代码很简单:spa

import marvel
from IPython.display import Image, HTML, display
PUBLIC_KEY = '你的公钥'
PRIVATE_KEY = '你的私钥'
m = marvel.Marvel(PUBLIC_KEY, PRIVATE_KEY)
characters = m.characters
name = input('请输入要查询的英雄(英文,可只输入开头):')
print('搜索中...')
all_characters = characters.all(nameStartsWith=name)

第三方库地址:https://pypi.org/project/marvel/

Marvel 的这个 API,我以为是个很是好的练手工具。做为一个学习者,你能够从使用中学到:

  1. 公钥、私钥、MD5加密的使用(接口权限验证)
  2. API的调用,参数传递,JSON返回数据的处理
  3. 多维度数据的整理分析
  4. 还有,英文文档的阅读

让我有点遗憾的是,数据中并无太多英雄角色相关的数据,否则就更有意思了。

对于这个接口的应用,我有几个思路供参考:

  1. 作一个爱好者网站或者小程序,对数据提供检索和整理展现
  2. 数据分析,看看哪些角色最受欢迎,哪一个做者最勤奋,角色之间的相互关系等
  3. 小游戏,好比集卡之类。(固然,非商业的)

早前我也推荐过豆瓣的 API,不过豆瓣现已把开发者页面下线,没法查看具体接口说明,以后会不会对外关闭也很难说了。Marvel API 相比豆瓣 API 来讲要复杂一些,主要是权限认证的部分。另外,在使用时还有一些要求,若是你以后将做品对外展现,请务必注意:

  1. 请求上限 1000次/天(但在个人我的页面上看到是 3000),而且须要设定请求来源网址(referrer)。建议经过自建缓存,以减小请求量
  2. 须要在全部用到接口数据的页面上标注 "Data provided by Marvel. 2014 Marvel"
  3. 需提供到 Marvel 官网的反链( http:// marvel.com
  4. 返回接口里的图片 URL 不是直接可访问的,需添加上所需图片尺寸和文件类型,拼出完整路径

常常有同窗说学了编程以后不知道去开发点什么。其实能够作的东西比比皆是,须要有发现需求的眼睛。暂时没有这方面敏感度也没关系, 多看看咱们的文章,跟着咱们作 。若是你碰巧又是漫威粉,那就更应该尝试一下了。以后咱们也会在此数据基础上开发一些案例,敬请期待。(立个Flag:争取跟《复联4》同步上线)

文中所使用的代码已上传,获取代码请在公众号( Crossin的编程教室 )里回复关键字 漫威

════

其余文章及回答:

学编程:如何自学Python | 新手引导 | 一图学Python

开发案例:智能防挡弹幕 | 红包提醒 | 流浪地球

欢迎搜索及关注: Crossin的编程教室

相关文章
相关标签/搜索