這多是我用過最「強大」的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的編程教室

相關文章
相關標籤/搜索