我們?cè)诰幊探淌抑袑?xiě)過(guò)不少使用 API 開(kāi)放接口 的案例,比如:
查詢書(shū)影音的 豆瓣 (爬蟲(chóng)+網(wǎng)站開(kāi)發(fā)實(shí)例:電影票比價(jià)網(wǎng))
查詢股票的 tushare (想用 Python 做數(shù)據(jù)分析?先玩玩這個(gè)再說(shuō))
翻譯單詞的 詞霸 (【每周一坑解答】自動(dòng)翻譯)
用來(lái)做人工智能的 騰訊AI (調(diào)教屬于你的“賈維斯”)
但以上這些都不是我今天要說(shuō)的。今天要說(shuō)的這個(gè)接口,之所以稱為“強(qiáng)大”,因?yàn)?它返回的內(nèi)容里蘊(yùn)含了未知的巨大能量,大到可以輕松毀滅宇宙 N 次……
沒(méi)錯(cuò),這就是 Marvel 向開(kāi)發(fā)者開(kāi)放的 API 。
官網(wǎng)地址:https://developer.marvel.com/
數(shù)據(jù)涵蓋的內(nèi)容主要是 Marvel 相關(guān)的漫畫(huà)作品信息,包含:
1491 個(gè) 角色
43759 本 漫畫(huà)
6200 個(gè) 創(chuàng)作者
10713 個(gè) 系列
96740 個(gè) 故事
75 個(gè) 事件
以及這幾樣數(shù)據(jù)之間的相互關(guān)聯(lián)關(guān)系。比如你可以通過(guò)一個(gè)角色查到其所出場(chǎng)的事件,或者一個(gè)創(chuàng)作者所參與過(guò)的角色。
我做了一個(gè)簡(jiǎn)單的小演示,可通過(guò)名字查詢相關(guān)的角色:
以及通過(guò)角色 ID 查詢其出現(xiàn)的漫畫(huà):
Marvel API 不是完全公開(kāi)訪問(wèn),需要先申請(qǐng) ,不過(guò)沒(méi)有任何門(mén)檻(只要看得懂英文)。使用接口時(shí),常規(guī)操作是按照官方提供的方式, 將申請(qǐng)獲得的公鑰、密鑰加上時(shí)間戳進(jìn)行 MD5 加密,作為權(quán)限的驗(yàn)證放在參數(shù)里,通過(guò) GET 方式進(jìn)行請(qǐng)求 (可以用 requests)。
而我這里用了一個(gè)第三方封裝好的 Python 庫(kù) marvel ,省了不少工作,所以核心代碼很簡(jiǎn)單:
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("請(qǐng)輸入要查詢的英雄(英文,可只輸入開(kāi)頭):") print("搜索中...") all_characters = characters.all(nameStartsWith=name)
第三方庫(kù)地址:https://pypi.org/project/marvel/
Marvel 的這個(gè) API,我覺(jué)得是個(gè)非常好的練手工具。作為一個(gè)學(xué)習(xí)者,你可以從使用中學(xué)到:
公鑰、私鑰、MD5加密的使用(接口權(quán)限驗(yàn)證)
API的調(diào)用,參數(shù)傳遞,JSON返回?cái)?shù)據(jù)的處理
多維度數(shù)據(jù)的整理分析
還有,英文文檔的閱讀
讓我有點(diǎn)遺憾的是,數(shù)據(jù)中并沒(méi)有太多英雄角色相關(guān)的數(shù)據(jù),不然就更有意思了。
對(duì)于這個(gè)接口的應(yīng)用,我有幾個(gè)思路供參考:
做一個(gè)愛(ài)好者網(wǎng)站或者小程序,對(duì)數(shù)據(jù)提供檢索和整理展示
數(shù)據(jù)分析,看看哪些角色最受歡迎,哪個(gè)作者最勤奮,角色之間的相互關(guān)系等
小游戲,比如集卡之類。(當(dāng)然,非商業(yè)的)
早前我也推薦過(guò)豆瓣的 API,不過(guò)豆瓣現(xiàn)已把開(kāi)發(fā)者頁(yè)面下線,無(wú)法查看具體接口說(shuō)明,之后會(huì)不會(huì)對(duì)外關(guān)閉也很難說(shuō)了。Marvel API 相比豆瓣 API 來(lái)說(shuō)要復(fù)雜一些,主要是權(quán)限認(rèn)證的部分。另外,在使用時(shí)還有一些要求,如果你之后將作品對(duì)外展示,請(qǐng)務(wù)必注意:
請(qǐng)求上限 1000次/天(但在我的個(gè)人頁(yè)面上看到是 3000),并且需要設(shè)定請(qǐng)求來(lái)源網(wǎng)址(referrer)。建議通過(guò)自建緩存,以減少請(qǐng)求量
需要在所有用到接口數(shù)據(jù)的頁(yè)面上標(biāo)注 "Data provided by Marvel. 2014 Marvel"
需提供到 Marvel 官網(wǎng)的反鏈( http:// marvel.com)
返回接口里的圖片 URL 不是直接可訪問(wèn)的,需添加上所需圖片尺寸和文件類型,拼出完整路徑
經(jīng)常有同學(xué)說(shuō)學(xué)了編程之后不知道去開(kāi)發(fā)點(diǎn)什么。其實(shí)可以做的東西比比皆是,需要有發(fā)現(xiàn)需求的眼睛。暫時(shí)沒(méi)有這方面敏感度也不要緊, 多看看我們的文章,跟著我們做 。如果你碰巧又是漫威粉,那就更應(yīng)該嘗試一下了。之后我們也會(huì)在此數(shù)據(jù)基礎(chǔ)上開(kāi)發(fā)一些案例,敬請(qǐng)期待。(立個(gè)Flag:爭(zhēng)取跟《復(fù)聯(lián)4》同步上線)
文中所使用的代碼已上傳,獲取代碼請(qǐng)?jiān)诠娞?hào)( Crossin的編程教室 )里回復(fù)關(guān)鍵字 漫威
════
其他文章及回答:
學(xué)編程:如何自學(xué)Python | 新手引導(dǎo) | 一圖學(xué)Python
開(kāi)發(fā)案例:智能防擋彈幕 | 紅包提醒 | 流浪地球
歡迎搜索及關(guān)注: Crossin的編程教室
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43478.html
摘要:據(jù)說(shuō)此部之后,不少影迷熟知的角色演員就要離開(kāi)漫威世界的熒幕了。換句話說(shuō)用數(shù)據(jù)說(shuō)話,誰(shuí)才是漫威宇宙中著墨最多的人物我之前做了個(gè)小調(diào)查僅就我這邊的采樣來(lái)看,鋼鐵俠在國(guó)內(nèi)是無(wú)法撼動(dòng)的人氣王。 復(fù)聯(lián)4上映了!這次比美國(guó)還早了兩天。當(dāng)然,我還沒(méi)看,不會(huì)給你們劇透,當(dāng)然也不想不劇透。 這一部不僅是滅霸這一線劇情的結(jié)局,也被認(rèn)為漫威第三階段的收官之作。據(jù)說(shuō)此部之后,不少影迷熟知的角色(演員)就要離開(kāi)...
摘要:下面是一個(gè)例子這個(gè)庫(kù)要求你至少安裝了和其中的一個(gè),這可能意味著,在大多數(shù)主機(jī)提供商提供的主機(jī)上它可能用不了。借助它,你可以忘記如何書(shū)寫(xiě)乏味的有一個(gè)姊妹庫(kù)叫,是一個(gè)基于的實(shí)現(xiàn)。 showImg(http://segmentfault.com/img/bVbJml); 作為一個(gè)PHP開(kāi)發(fā)者,現(xiàn)在是一個(gè)令人激動(dòng)的時(shí)刻。每天有許許多多有用的庫(kù)分發(fā)出來(lái),在 Github 上很容易發(fā)現(xiàn)和使用這些庫(kù)...
摘要:在以下簡(jiǎn)稱和以下簡(jiǎn)稱開(kāi)發(fā)團(tuán)隊(duì)都工作過(guò),這篇文章給出這兩款產(chǎn)品一些技術(shù)層面的比較。標(biāo)準(zhǔn)開(kāi)發(fā)方式和的雖然看起來(lái)都是風(fēng)格,但實(shí)現(xiàn)技術(shù)不同。而的標(biāo)準(zhǔn)則是基于和協(xié)作而成的。 如果您對(duì)SAP S/4HANA for Customer Management(以下簡(jiǎn)稱S4CRM)和SAP Cloud for Customer(以下簡(jiǎn)稱C4C)不甚熟悉,那我建議您可以先瀏覽我之前寫(xiě)的這兩篇微信公眾號(hào)文章...
摘要:在以下簡(jiǎn)稱和以下簡(jiǎn)稱開(kāi)發(fā)團(tuán)隊(duì)都工作過(guò),這篇文章給出這兩款產(chǎn)品一些技術(shù)層面的比較。標(biāo)準(zhǔn)開(kāi)發(fā)方式和的雖然看起來(lái)都是風(fēng)格,但實(shí)現(xiàn)技術(shù)不同。而的標(biāo)準(zhǔn)則是基于和協(xié)作而成的。 如果您對(duì)SAP S/4HANA for Customer Management(以下簡(jiǎn)稱S4CRM)和SAP Cloud for Customer(以下簡(jiǎn)稱C4C)不甚熟悉,那我建議您可以先瀏覽我之前寫(xiě)的這兩篇微信公眾號(hào)文章...
閱讀 3478·2021-09-08 10:46
閱讀 1189·2019-08-30 13:17
閱讀 2369·2019-08-30 13:05
閱讀 1211·2019-08-29 15:29
閱讀 2889·2019-08-29 11:31
閱讀 542·2019-08-26 12:13
閱讀 1537·2019-08-26 11:42
閱讀 1845·2019-08-23 18:37