這可能是我用過最“強大”的API:Marvel API

我們在編程教室中寫過不少使用 API 開放接口的案例,比如:

但以上這些都不是我今天要說的。今天要說的這個接口,之所以稱爲“強大”,因爲它返回的內容裏蘊含了未知的巨大能量,大到可以輕鬆毀滅宇宙 N 次……

沒錯,這就是 Marvel 向開發者開放的 API

官網地址: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)

第三方庫地址: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 官網的反鏈(marvel.com
  4. 返回接口裏的圖片 URL 不是直接可訪問的,需添加上所需圖片尺寸和文件類型,拼出完整路徑

經常有同學說學了編程之後不知道去開發點什麼。其實可以做的東西比比皆是,需要有發現需求的眼睛。暫時沒有這方面敏感度也不要緊,多看看我們的文章,跟着我們做。如果你碰巧又是漫威粉,那就更應該嘗試一下了。之後我們也會在此數據基礎上開發一些案例,敬請期待。(立個Flag:爭取跟《復聯4》同步上線)

文中所使用的代碼已上傳,獲取代碼請在公衆號(Crossin的編程教室)裏回覆關鍵字漫威


════

其他文章及回答:

學編程:如何自學Python | 新手引導 | 一圖學Python

開發案例:智能防擋彈幕 | 紅包提醒 | 流浪地球

歡迎搜索及關注:Crossin的編程教室

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章