在進(jìn)行定量城市分析時(如研究某市某片區(qū)的空間分析),需要用到地理位置信息以及現(xiàn)狀設(shè)施建筑等的分布情況,這就必須獲得相關(guān)的地理坐標(biāo)信息。因此數(shù)據(jù)的獲取與處理是進(jìn)行定量城市分析所需的前置作業(yè),此階段的工作決定了后續(xù)分析的效度和質(zhì)量。
一、使用工具
這里采集數(shù)據(jù)使用到的工具是火車頭采集器8.5。
火車頭采集器一款互聯(lián)網(wǎng)數(shù)據(jù)抓取、處理、分析,挖掘軟件,可以抓取網(wǎng)頁上散亂分布的數(shù)據(jù)信息,并通過一系列的分析處理,準(zhǔn)確挖掘出所需數(shù)據(jù)。
特點(diǎn):采集不限網(wǎng)頁,不限內(nèi)容;
分布式采集系統(tǒng),提高效率;
支持PHP和C#插件擴(kuò)展,方便修改處理數(shù)據(jù),但需要懂得火車頭規(guī)則或者正則表達(dá)式。
二、數(shù)據(jù)采集方式--基于百度地圖API的數(shù)據(jù)采集
? API是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序開發(fā)人員基于某軟件或硬件得以訪問一組程序的能力,而又無需訪問源碼,或理解程序內(nèi)部工作機(jī)制的細(xì)節(jié)。API服務(wù)商在提供數(shù)據(jù)的同時也在收集用戶的信息,這是一個雙向過程。
百度地圖Web服務(wù)API中提供了地點(diǎn)檢索服務(wù)、正/逆地理編碼服務(wù)、路線規(guī)劃、批量算數(shù)、時區(qū)服務(wù)、坐標(biāo)轉(zhuǎn)換服務(wù)及鷹眼軌跡服務(wù)等。其中地點(diǎn)檢索服務(wù)(又名Place API),提供多種場景的地點(diǎn)(POI)檢索功能,包括城市檢索、周邊檢索、矩形區(qū)域檢索。
以通過百度地圖API獲取綿陽市飯店數(shù)據(jù)為例。
三、數(shù)據(jù)采集步驟
1.申請百度地圖開放平臺開發(fā)者秘鑰
首先打開百度地圖開放平臺(http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5),點(diǎn)擊右上角控制臺,再點(diǎn)擊應(yīng)用管理→我的應(yīng)用→創(chuàng)建應(yīng)用,申請開發(fā)者秘鑰(ak),并選擇以下服務(wù)項(xiàng)。




2.通過接口獲取詳細(xì)地理信息
開發(fā)者可以通過接口獲取地點(diǎn)(POI)基礎(chǔ)或詳細(xì)地地理信息。其返回的是Json類型數(shù)據(jù)(一個區(qū)域最大返回數(shù)是400,每頁最大返回數(shù)為20)。當(dāng)某區(qū)域、,某類POI個數(shù)多于400時,可以選擇把該區(qū)域分成子區(qū)域進(jìn)行檢索或通過矩形、圓形區(qū)域方式進(jìn)行檢索查閱頁面中Place檢索格式和實(shí)例如下:
格式:http://api.map.baidu.com/place/search?&query=關(guān)鍵字&bounds=查詢區(qū)域&output=輸出格式類型&key=用戶密鑰
實(shí)例:http://api.map.baidu.com/place/search?&query=ATM機(jī)&bounds=綿陽&output=json&ak=你的密鑰?(你的秘鑰就是上一步申請得到的)
(什么是Place API詳細(xì)說明可見此網(wǎng)址https://developer.baidu.com/map/place-api.htm#.E4.BB.80.E4.B9.88.E6.98.AFPlace_API.EF.BC.9F)
其中“關(guān)鍵字”、“查詢區(qū)域”、“輸出格式類型”、“用戶秘鑰”可以根據(jù)自己的需要替換,而page_num為選填項(xiàng),表示分頁碼,因?yàn)橹挥性O(shè)置了page_num字段才會在結(jié)果頁面中返回標(biāo)識總條數(shù)的total字段,方便在火車采集器中做相關(guān)設(shè)置,如下:
訪問該網(wǎng)址,返回結(jié)果如下圖:

3.用火車頭采集器采集地理信息
在火車頭軟件中,首先點(diǎn)擊左上角的“新建”,然后點(diǎn)擊“分組”進(jìn)入新建界面自己命名然后保存既可。建好分組后,再點(diǎn)擊新建。然后點(diǎn)擊“任務(wù)”,命名為“百度API”。


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

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

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

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


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

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