这可能是我用过最“强大”的API

浏览: 1313

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿

作者:Crossin先生 公众号:Crossin的编程教室

我们在编程教室中写过不少使用 API 开放接口的案例,比如:

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

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

官网地址:

https://developer.marvel.com/

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

  • 1491 个角色

  • 43759 本漫画

  • 6200 个创作者

  • 10713 个系列

  • 96740 个故事

  • 75 个事件

以及这几样数据之间的相互关联关系。比如你可以通过一个角色查到其所出场的事件,或者一个创作者所参与过的角色。

我做了一个简单的小演示,可通过名字查询相关的角色:

以及通过角色 ID 查询其出现的漫画:

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

而我这里用了一个第三方封装好的 Python 库 marvel,省了不少工作,所以核心代码很简单:

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》同步上线)

 

感谢阅读

推荐阅读

1:互联网公司迷信大全

2:爬一爬那些年你硬盘存过的老师

3:我男朋友是项目经理......

4:2018年Python爱好者社区历史文章合集(作者篇)

5:2018年终精心整理|Python爱好者社区历史文章合集(类型篇)

推荐 0
本文由 R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册