在進(jìn)行定量城市分析時(shí)(如研究某市某片區(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)頁(yè)上散亂分布的數(shù)據(jù)信息愧薛,并通過(guò)一系列的分析處理晨炕,準(zhǔn)確挖掘出所需數(shù)據(jù)。
特點(diǎn):采集不限網(wǎng)頁(yè)厚满,不限內(nèi)容府瞄;
分布式采集系統(tǒng),提高效率;
支持PHP和C#插件擴(kuò)展遵馆,方便修改處理數(shù)據(jù)鲸郊,但需要懂得火車頭規(guī)則或者正則表達(dá)式。
二货邓、數(shù)據(jù)采集方式--基于百度地圖API的數(shù)據(jù)采集
? API是一些預(yù)先定義的函數(shù)秆撮,目的是提供應(yīng)用程序開發(fā)人員基于某軟件或硬件得以訪問(wèn)一組程序的能力,而又無(wú)需訪問(wèn)源碼换况,或理解程序內(nèi)部工作機(jī)制的細(xì)節(jié)职辨。API服務(wù)商在提供數(shù)據(jù)的同時(shí)也在收集用戶的信息,這是一個(gè)雙向過(guò)程戈二。
百度地圖Web服務(wù)API中提供了地點(diǎn)檢索服務(wù)舒裤、正/逆地理編碼服務(wù)、路線規(guī)劃觉吭、批量算數(shù)腾供、時(shí)區(qū)服務(wù)、坐標(biāo)轉(zhuǎn)換服務(wù)及鷹眼軌跡服務(wù)等鲜滩。其中地點(diǎn)檢索服務(wù)(又名Place API)伴鳖,提供多種場(chǎng)景的地點(diǎn)(POI)檢索功能,包括城市檢索徙硅、周邊檢索榜聂、矩形區(qū)域檢索。
以通過(guò)百度地圖API獲取綿陽(yáng)市飯店數(shù)據(jù)為例嗓蘑。
三须肆、數(shù)據(jù)采集步驟
1.申請(qǐng)百度地圖開放平臺(tái)開發(fā)者秘鑰
首先打開百度地圖開放平臺(tái)(http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5),點(diǎn)擊右上角控制臺(tái)桩皿,再點(diǎn)擊應(yīng)用管理→我的應(yīng)用→創(chuàng)建應(yīng)用休吠,申請(qǐng)開發(fā)者秘鑰(ak),并選擇以下服務(wù)項(xiàng)业簿。
2.通過(guò)接口獲取詳細(xì)地理信息
開發(fā)者可以通過(guò)接口獲取地點(diǎn)(POI)基礎(chǔ)或詳細(xì)地地理信息。其返回的是Json類型數(shù)據(jù)(一個(gè)區(qū)域最大返回?cái)?shù)是400阳懂,每頁(yè)最大返回?cái)?shù)為20)梅尤。當(dāng)某區(qū)域、岩调,某類POI個(gè)數(shù)多于400時(shí)巷燥,可以選擇把該區(qū)域分成子區(qū)域進(jìn)行檢索或通過(guò)矩形、圓形區(qū)域方式進(jìn)行檢索查閱頁(yè)面中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=綿陽(yáng)&output=json&ak=你的密鑰?(你的秘鑰就是上一步申請(qǐng)得到的)
(什么是Place API詳細(xì)說(shuō)明可見此網(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è)碼抛姑,因?yàn)橹挥性O(shè)置了page_num字段才會(huì)在結(jié)果頁(yè)面中返回標(biāo)識(shí)總條數(shù)的total字段,方便在火車采集器中做相關(guān)設(shè)置艳狐,如下:
訪問(wèn)該網(wǎng)址定硝,返回結(jié)果如下圖:
3.用火車頭采集器采集地理信息
在火車頭軟件中,首先點(diǎn)擊左上角的“新建”毫目,然后點(diǎn)擊“分組”進(jìn)入新建界面自己命名然后保存既可蔬啡。建好分組后,再點(diǎn)擊新建镀虐。然后點(diǎn)擊“任務(wù)”箱蟆,命名為“百度API”。
然后在第一步--采集規(guī)則頁(yè)面刮便,點(diǎn)擊“添加”鍵空猜,在添加開始采集網(wǎng)址頁(yè)面,選擇“批量/多頁(yè)”方式獲取地址格式诺核,在地址格式一欄中填入Place檢索鏈接抄肖,并將page_num字段用(*)標(biāo)識(shí)為變量,選擇等差數(shù)量方式窖杀,在項(xiàng)數(shù)與返回Json結(jié)果中total字段一致漓摩,公差為1。
在訪問(wèn)百度地圖API接口返回的Json網(wǎng)頁(yè)中入客,在需要提取信息處復(fù)制該條信息管毙。例如復(fù)制此處獲得“name”:周肥腸(總店)”,桌硫。
在火車頭采集器第二步采集內(nèi)容規(guī)則頁(yè)面夭咬,添加標(biāo)簽,標(biāo)簽名填入“名稱”铆隘,提取數(shù)據(jù)方式處選擇“前后截取”卓舵,在標(biāo)簽編輯頁(yè)用(*)代替要采集的內(nèi)容,并將要采集內(nèi)容的前后內(nèi)容分別填入“開始字符串”膀钠、“結(jié)束字符串處”掏湾。
經(jīng)度、緯度的獲取方式與“名稱”方式相同肿嘲。
添加完成后融击,點(diǎn)擊規(guī)則測(cè)試頁(yè)面的“測(cè)試”鍵,對(duì)POI的“名稱”雳窟、“經(jīng)度”尊浪、“緯度”三種標(biāo)簽進(jìn)行測(cè)試,測(cè)試可以得到正確獲取信息之后,進(jìn)入“第三步:發(fā)布內(nèi)容設(shè)置”頁(yè)面拇涤,選擇“方式二:保存為本地Word捣作,Excel,Html工育,Txt等文件”虾宇,并制作與標(biāo)簽相對(duì)應(yīng)的Gsv格式的模板,完成后如绸,點(diǎn)擊“保存”按鈕嘱朽,采集數(shù)據(jù)就完成了。
退回到主界面怔接,在“采網(wǎng)頁(yè)”及“采內(nèi)容”下打?qū)刺掠荆c(diǎn)擊開始任務(wù),即可完成百度地圖綿陽(yáng)市飯店的數(shù)據(jù)獲取扼脐。