python爬取地图上的经纬度_Python调用百度地图API爬取经纬度
作者:國服帥座? 經(jīng)濟學(xué)在讀碩士
微信公眾號:統(tǒng)計之家
你吃肯德基,我點麥當(dāng)勞。本是替代品,卻眾口難調(diào)。每個人都有獨特的偏好,都有一份要堅守的情懷。高德與百度,你心儀哪款呢?
認(rèn)識百度地圖API
百度與高德在地理編碼API上的主要差異,個人歸納如下:a、二者體系獨立,所得的經(jīng)緯度數(shù)據(jù)略有不同
b、百度默認(rèn)輸出格式為xml,而高德默認(rèn)輸出格式為json
c、高德經(jīng)緯度數(shù)據(jù)是連著的,用逗號隔開;百度經(jīng)度與緯度是分別顯示的
進入百度地圖開放平臺,點擊“開發(fā)文檔”,點擊“Web服務(wù)API”,點擊“地理編碼”。
與高德地圖API類似,百度地圖API中也存在一些參數(shù),地理編碼必須要有的參數(shù)有兩個:百度密鑰(ak)和地址(address)。另外,作者希望輸出的格式是json的,因而output參數(shù)也應(yīng)當(dāng)關(guān)注。
爬取單個數(shù)據(jù)import requestsimport jsonurl = 'http://api.map.baidu.com/geocoder/v2/'params = { 'address' : '啟東市', ? ? ? ? ? # 以江蘇省啟東市為例
'ak' : '你的百度密鑰', ? ? ? ? ? ? # 百度密鑰
'output': 'json' ? ? } ? ? ? ? ? ? ?# 輸出結(jié)果設(shè)置為json格式res = requests.get(url,params)res.text
接下來,我們要做的是,將json格式轉(zhuǎn)化為Python字典格式,方便提取。jd = json.loads(res.text) ? ? # 將json格式轉(zhuǎn)化為Python字典jd
經(jīng)緯度就在字典里面,讓我們根據(jù)鍵來取值吧。coords = jd['result']['location']coords
這便是百度地圖顯示的啟東市經(jīng)度與緯度,上文中用高德爬取的啟東市經(jīng)緯度數(shù)據(jù)如下(見上文最后一張圖):(121.657441, 31.808026)
觀察可得,在數(shù)值上,小數(shù)點后第二位開始出現(xiàn)差異;在形式上,經(jīng)緯度是否分別輸出也有差異。至于經(jīng)緯度究竟是分開好,還是連著好,其實不用太糾結(jié),各自都有用得著的地方。
整合為函數(shù)
在整合為函數(shù)后,再把啟東市作為自變量代入,檢查函數(shù)是否正確,確認(rèn)無誤。
for循環(huán)批量處理
總結(jié)
以上是生活随笔為你收集整理的python爬取地图上的经纬度_Python调用百度地图API爬取经纬度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 静态方法什么时候执行?_面试官:知道类在
- 下一篇: python调用dll函数_从Pytho