上篇關(guān)于爬蟲的文章,我們講解了如何運用Python的requests及BeautifuiSoup模塊來完成靜態(tài)網(wǎng)頁的爬取,總結(jié)過程,網(wǎng)頁爬蟲本質(zhì)就兩步:
1、設置請求參數(shù)(url,headers,cookies,post或get驗證等)訪問目標站點的服務器;
2、解析服務器返回的文檔,提取需要的信息。
而API的工作機制與爬蟲的兩步類似,但也有些許不同:
1、API一般只需要設置url即可,且請求方式一般為“get”方式
2、API服務器返回的通常是json或xml格式的數(shù)據(jù),解析更簡單
也許到這你就明白了,API簡直就是開放的“爬蟲”呀,可以告訴你,基本就是這個意思。好的,言歸正傳,本篇我們就演示如何運用Python結(jié)合百度地圖API來批量獲取POI(興趣點)。
所謂POI(興趣點),指的是人們感興趣,比較常去的地方,比如銀行、醫(yī)院、學校等,利用城市的POI的空間屬性可以做非常多的事情,至于什么事情呢,此處省略10000字。。。
說干就干,Let's go!
(1)創(chuàng)建百度地圖應用
訪問百度地圖API需要一個信令(AK),打開百度地圖開放平臺,點擊右上角“API控制臺”,即進入了百度地圖的開發(fā)界面。

選擇“創(chuàng)建應用”-應用類型勾選“瀏覽器端”–勾選所用到的服務(一般全選即可),此時就創(chuàng)建好了應用賬號,得到“AK”


(2)Place API 及Web服務API
打開百度地圖API的POI模塊,網(wǎng)址:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi,這個頁面詳細介紹了Place API的請求參數(shù)及返回數(shù)據(jù)的情況。
可以看到,Place API 提供區(qū)域檢索POI服務與POI詳情服務。
1. 區(qū)域檢索POI服務提供三種區(qū)域檢索方法:
a.城市內(nèi)檢索(對應JavaScriptAPI的Search方法)
b.矩形檢索(對應JavaScript API的SearchInBound方法)
c.圓形區(qū)域檢索(對應JavaScript的SearchNearBy方法)。
2. POI詳情服務提供查詢單個POI的詳情信息,如好評。
并給出了請求的一個示例,設置檢索城市為北京,檢索關(guān)鍵字為“飯店”,檢索后返回10條數(shù)據(jù):
http://api.map.baidu.com/place/v2/search?q=飯店®ion=北京&output=json&ak=您的AK
將上述url粘貼到瀏覽器里,返回的數(shù)據(jù)如下:

上圖是將返回的json數(shù)據(jù)解析之后的結(jié)果,可以看到,服務器返回了10條北京市的飯店的信息,包括飯店名稱、經(jīng)緯度、地址、聯(lián)系電話等。
具體的參數(shù)設置,自行去該網(wǎng)頁去看吧,這里就不再贅述,這里我們主要利用“矩形檢索”的方式來獲取整個城市的特定POI信息,其url格式如下:
新聞熱點
疑難解答