您當前的位置:首頁 > 遊戲

Python呼叫高德地圖API爬取經緯度

作者:由 Economicoder 發表于 遊戲時間:2019-01-17

比起普通的靜態網頁爬蟲,爬高德地圖的麻煩之處在於API中存在引數。這需要我們首先要對高德地圖API有個基本的瞭解。

登入高德地圖API網站,點選“開發文件”,找到下圖中的“地理/逆地理編碼API”處,點選進入。

Python呼叫高德地圖API爬取經緯度

我們可以看到一個API,其問號前面的部分是固定不變的,而問號後面的是引數部分。高德地圖此處羅列了7個引數,包括2個必選引數,以及5個可選引數。這兩個必選引數,一個是高德key,需要註冊;另一個是引數address,比如人民公園。你也許需要的是南京的人民公園的經緯度資訊,湊巧的是,北京也有一個人民公園。引數city的存在可以限定地址資訊的範圍,確保你獲取的是南京的人民公園經緯度。引數output值得關注,預設的輸出結果是json格式。

Python呼叫高德地圖API爬取經緯度

Python呼叫高德地圖API爬取經緯度

如果我需要的不是某個建築的經緯度,而是某個行政區域的呢?打個比方,我不想要南京的人民公園的經緯度,我想要的是南京市的經緯度。這樣也是可以實現的,只需要引數address直接填入“南京市”即可,這便不需要引數city了。這樣得出的經緯度,一般是各地行政中心所在的經緯度。

下面,我將爬取南京市的經緯度。

import

requests

import

json

url

=

‘https://restapi。amap。com/v3/geocode/geo’

# 輸入API問號前固定不變的部分

params

=

{

‘key’

‘你的高德金鑰’

‘address’

‘南京市’

}

# 將兩個引數放入字典

res

=

requests

get

url

params

res

text

輸出結果如下:

Python呼叫高德地圖API爬取經緯度

輸出結果是json格式,需要用到json模組將其轉化為Python字典。

jd

=

json

loads

res

text

# 將json資料轉化為Python字典格式

coords

=

jd

‘geocodes’

][

0

][

‘location’

coords

輸出結果,獲得南京座標:

Python呼叫高德地圖API爬取經緯度

為了方便起見,將上面過程整合為函式。

import

requests

import

json

def

coords

city

):

url

=

‘https://restapi。amap。com/v3/geocode/geo’

# 輸入API問號前固定不變的部分

params

=

{

‘key’

‘你的高德金鑰’

‘address’

city

}

# 將兩個引數放入字典

res

=

requests

get

url

params

jd

=

json

loads

res

text

return

jd

‘geocodes’

][

0

][

‘location’

下面,在自變數位置輸入“南京市”,檢驗下函式正確性。

當大批次處理時,使用for迴圈即可。

Python呼叫高德地圖API爬取經緯度

標簽: 引數  經緯度  API  高德  json