基于百度地圖API的城市數(shù)據(jù)采集方式

在進行定量城市分析時(如研究某市某片區(qū)的空間分析),需要用到地理位置信息以及現(xiàn)狀設施建筑等的分布情況,這就必須獲得相關的地理坐標信息。因此數(shù)據(jù)的獲取與處理是進行定量城市分析所需的前置作業(yè),此階段的工作決定了后續(xù)分析的效度和質量。

一、使用工具

這里采集數(shù)據(jù)使用到的工具是火車頭采集器8.5。

火車頭采集器一款互聯(lián)網(wǎng)數(shù)據(jù)抓取、處理、分析,挖掘軟件,可以抓取網(wǎng)頁上散亂分布的數(shù)據(jù)信息,并通過一系列的分析處理,準確挖掘出所需數(shù)據(jù)。

特點:采集不限網(wǎng)頁,不限內容;

分布式采集系統(tǒng),提高效率;

支持PHP和C#插件擴展,方便修改處理數(shù)據(jù),但需要懂得火車頭規(guī)則或者正則表達式。

二、數(shù)據(jù)采集方式--基于百度地圖API的數(shù)據(jù)采集

? API是一些預先定義的函數(shù),目的是提供應用程序開發(fā)人員基于某軟件或硬件得以訪問一組程序的能力,而又無需訪問源碼,或理解程序內部工作機制的細節(jié)。API服務商在提供數(shù)據(jù)的同時也在收集用戶的信息,這是一個雙向過程。

百度地圖Web服務API中提供了地點檢索服務、正/逆地理編碼服務、路線規(guī)劃、批量算數(shù)、時區(qū)服務、坐標轉換服務及鷹眼軌跡服務等。其中地點檢索服務(又名Place API),提供多種場景的地點(POI)檢索功能,包括城市檢索、周邊檢索、矩形區(qū)域檢索。

以通過百度地圖API獲取綿陽市飯店數(shù)據(jù)為例。

三、數(shù)據(jù)采集步驟

1.申請百度地圖開放平臺開發(fā)者秘鑰

首先打開百度地圖開放平臺(http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5),點擊右上角控制臺,再點擊應用管理→我的應用→創(chuàng)建應用,申請開發(fā)者秘鑰(ak),并選擇以下服務項。





申請后獲得的ak

2.通過接口獲取詳細地理信息

開發(fā)者可以通過接口獲取地點(POI)基礎或詳細地地理信息。其返回的是Json類型數(shù)據(jù)(一個區(qū)域最大返回數(shù)是400,每頁最大返回數(shù)為20)。當某區(qū)域、,某類POI個數(shù)多于400時,可以選擇把該區(qū)域分成子區(qū)域進行檢索或通過矩形、圓形區(qū)域方式進行檢索查閱頁面中Place檢索格式和實例如下:

格式:http://api.map.baidu.com/place/search?&query=關鍵字&bounds=查詢區(qū)域&output=輸出格式類型&key=用戶密鑰

實例:http://api.map.baidu.com/place/search?&query=ATM機&bounds=綿陽&output=json&ak=你的密鑰?(你的秘鑰就是上一步申請得到的)

(什么是Place API詳細說明可見此網(wǎng)址https://developer.baidu.com/map/place-api.htm#.E4.BB.80.E4.B9.88.E6.98.AFPlace_API.EF.BC.9F)

其中“關鍵字”、“查詢區(qū)域”、“輸出格式類型”、“用戶秘鑰”可以根據(jù)自己的需要替換,而page_num為選填項,表示分頁碼,因為只有設置了page_num字段才會在結果頁面中返回標識總條數(shù)的total字段,方便在火車采集器中做相關設置,如下:

http://api.map.baidu.com/place/v2/search?&query=飯店&tage=美食&region=綿陽&output=json&page_num=0&ak=kRA0vIfH6UHEVYUAhPLnkS72BwtVBYnI

訪問該網(wǎng)址,返回結果如下圖:

3.用火車頭采集器采集地理信息

在火車頭軟件中,首先點擊左上角的“新建”,然后點擊“分組”進入新建界面自己命名然后保存既可。建好分組后,再點擊新建。然后點擊“任務”,命名為“百度API”。


然后在第一步--采集規(guī)則頁面,點擊“添加”鍵,在添加開始采集網(wǎng)址頁面,選擇“批量/多頁”方式獲取地址格式,在地址格式一欄中填入Place檢索鏈接,并將page_num字段用(*)標識為變量,選擇等差數(shù)量方式,在項數(shù)與返回Json結果中total字段一致,公差為1。

在訪問百度地圖API接口返回的Json網(wǎng)頁中,在需要提取信息處復制該條信息。例如復制此處獲得“name”:周肥腸(總店)”,。

在火車頭采集器第二步采集內容規(guī)則頁面,添加標簽,標簽名填入“名稱”,提取數(shù)據(jù)方式處選擇“前后截取”,在標簽編輯頁用(*)代替要采集的內容,并將要采集內容的前后內容分別填入“開始字符串”、“結束字符串處”。

經(jīng)度、緯度的獲取方式與“名稱”方式相同。

添加完成后,點擊規(guī)則測試頁面的“測試”鍵,對POI的“名稱”、“經(jīng)度”、“緯度”三種標簽進行測試,測試可以得到正確獲取信息之后,進入“第三步:發(fā)布內容設置”頁面,選擇“方式二:保存為本地Word,Excel,Html,Txt等文件”,并制作與標簽相對應的Gsv格式的模板,完成后,點擊“保存”按鈕,采集數(shù)據(jù)就完成了。

退回到主界面,在“采網(wǎng)頁”及“采內容”下打對勾,點擊開始任務,即可完成百度地圖綿陽市飯店的數(shù)據(jù)獲取。

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容