Python 網(wǎng)絡(luò)爬蟲 學(xué)習(xí)筆記.CH4 API

維基百科:應(yīng)用程序接口(英語:ApplicationProgrammingInterface,簡稱:API),又稱為應(yīng)用編程接口,就是軟件系統(tǒng)不同組成部分銜接的約定。

應(yīng)用程序接口為:“‘電腦操作系統(tǒng)(Operating system)’或‘程序庫’提供給應(yīng)用程序調(diào)用使用的代碼”。其主要目的是讓應(yīng)用程序開發(fā)人員得以調(diào)用一組例程功能,而無須考慮其底層的源代碼為何、或理解其內(nèi)部工作機制的細(xì)節(jié)。API本身是抽象的,它僅定義了一個接口,而不涉及應(yīng)用程序在實際實現(xiàn)過程中的具體操作。例如,圖形庫中的一組API定義了繪制指針的方式,可于圖形輸出設(shè)備上顯示指針。當(dāng)應(yīng)用程序需要指針功能時,可在引用、編譯時鏈接到這組API,而運行時就會調(diào)用此API的實現(xiàn)(庫)來顯示指針。

Youtube上一個例子:你去餐廳點餐,菜單是一個應(yīng)用界面,你看了菜單提出請求,告訴服務(wù)員要點啥,他將你的請求傳達(dá)給后廚,然后從后廚那里把你點的菜拿給你,你不用知道服務(wù)員是怎么和后廚交流的。服務(wù)員就是個API,API可以看作一個web服務(wù)或軟件組件和外界交流的協(xié)議,規(guī)定了如何發(fā)送請求和接收響應(yīng)。

盡管目前不同的軟件應(yīng)用都有各自不同的 API,但“API”經(jīng)常被看成“網(wǎng)絡(luò)應(yīng)用 API”。一般情況下,程序員可以用 HTTP 協(xié)議向 API 發(fā)起請求以獲取某種信息,API 會用 XML(eXtensible Markup Language,可擴展標(biāo)記語言)或 JSON(JavaScript Object Notation,JavaScript 對象表示)格式返回服務(wù)器響應(yīng)的信息。盡管大多數(shù) API 仍然在用 XML,但是JSON 正在快速成為數(shù)據(jù)編碼格式的主流選擇。

雖然 API 并非隨處可見(這正是我寫這本書的主要動機,因為即使你找不到 API,也可以用爬蟲采集信息),但是你可以從 API 里獲取許多信息。API 很容易使用。其實你只要在瀏覽器里輸入下面的網(wǎng)址就可以發(fā)起一個簡單的 API?

請求:1? http://freegeoip.net/json/50.78.253.58?

應(yīng)該會出現(xiàn)下面的結(jié)果:{"ip":"50.78.253.58","country_code":"US","country_name":"美國","region_code":"MA","region_name":"Massachusetts","city":"Chelmsford","zipcode":"01824","latitude":42.5879,"longitude":-71.3498,"metro_code":"506","area_code":"978"}

你可能會想,這不就是在瀏覽器窗口輸入一個網(wǎng)址,按回車后獲取的(只是 JSON 格式)信息嗎?究竟 API 和普通的網(wǎng)址訪問有什么區(qū)別呢?如果不考慮 API 高大上的名稱,其實兩者沒啥區(qū)別。API 可以通過 HTTP 協(xié)議下載文件,和 URL 訪問網(wǎng)站獲取數(shù)據(jù)的協(xié)議一樣,它幾乎可以實現(xiàn)所有在網(wǎng)上干的事情。API 之所以叫 API 而不是叫網(wǎng)站的原因,其實是首先 API 請求使用非常嚴(yán)謹(jǐn)?shù)恼Z法,其次 API 用 JSON 或 XML 格式表示數(shù)據(jù),而不是HTML 格式。

Google map API:

https://console.developers.google.com 登錄Google 賬號,啟用Google Maps Geocoding API,根據(jù)提示創(chuàng)建新的 API 密鑰。可以在瀏覽器里實現(xiàn)一個簡單的 GET 請求,把街道地址(這里用的是 Boston Museum of Science,里面有 Science Park)解析成緯度和經(jīng)度:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=(你的API 密鑰)

得到j(luò)son數(shù)據(jù):

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,326評論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,664評論 4 61
  • 在遇到一個比較復(fù)雜,而自己卻不清楚的事情時,閑不住的手,是最容易壞事的。 愛因斯坦說過,不要用同一個思路去解決同一...
    小小向日葵up閱讀 141評論 0 0
  • 不要把你的生活排的太滿,因為生活能給你的遠(yuǎn)遠(yuǎn)超出你的想象,擁抱偶然,點開人生的超鏈接。 2016.12.18
    劉子逸閱讀 200評論 0 0

友情鏈接更多精彩內(nèi)容