python调⽤百度地图API批量查询全国⾼速收费站经纬度
写在前⾯
⼤家好,我是饭都吃不起的南南
昨天帮朋友爬了全国的⾼速站点收费站这⾥下载
由于该⽹站并没有西藏和海南省的⾼速收费站,所以并没有获取到,爬取这个挺简单的,我就不说了.(说多了容易戴上银⼿镯,我怂)数据如下
调⽤百度API批量拾取坐标
下⾯开始写代码【复制粘贴】
pandas读取excel数据存为列表
import pandas as pd
def excel_one_line_to_list():
df = pd.read_excel(r"C:\Users\Administrator\Desktop\收费站\2021-8-27-10-13-41-4442610865300-【陕西⾼速收费站⼀览表】.xlsx", usecols=[0],                      names=None)  # 读取项⽬名称列,不要列名
df_li = list()
result = []
for s_li in df_li:
result.append(s_li[0])
#print(result)
return result#return返回结果值
if __name__ == '__main__':
result = excel_one_line_to_list()#接收结果
地址转换为经纬度所以选择的是地理编码,如果要搞别的事情的话,可以去查帮助⽂档。
import requests
import json
def getUrl(*address):
'''
调⽤地图API获取待查询地址专属url
最⾼查询次数30w/天,最⼤并发量160/秒
'''
ak = '你的key'
高速查询
if len(address) < 1:
return None
else:
for add in address:
url = 'api.map.baidu/geocoding/v3/?address={inputAddress}&output=json&ak={myAk}'.format(inputAddress=add,myAk=ak)
yield url
key未认证的⽤户每天调⽤api的次数限制为0.6w,认证后为3w
def getPosition(url):
'''返回经纬度信息'''
res = (url)
json_data = json.)
if json_data['status'] == 0:
lat = json_data['result']['location']['lat'] #纬度
lng = json_data['result']['location']['lng'] #经度
else:
print("Error output!")
return json_data['status']
return lat,lng
if __name__ == "__main__":
address = result
for add in address:
add_url = list(getUrl(add))[0]
print(add_url)
try:
lat,lng = getPosition(add_url)
print("{0}|经度:{1}|纬度:{2}.".format(add,lng,lat))
except Error as e:
print(e)
返回结果如下
api.map.baidu/geocoding/v3/?address=禹门⼝收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU 禹门⼝收费站|经度:110.63335672712498|纬度:35.66392482522151.
api.map.baidu/geocoding/v3/?address=龙门收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU 龙门收费站|经度:114.31678129149563|纬度:23.676445987337065.
api.map.baidu/geocoding/v3/?address=韩城收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU 韩城收费站|经度:110.47940351187505|纬度:35.48304612715598.
api.map.baidu/geocoding/v3/?address=芝川收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU 芝川收费站|经度:110.41152009160538|纬度:35.38365354048929.
api.map.baidu/geocoding/v3/?address=合阳收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU 合阳收费站|经度:110.1669576741416|纬度:35.218007273465126.
api.map.baidu/geocoding/v3/?address=澄城收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU 澄城收费站|经度:109.94180943535946|纬度:35.00705384279941.
api.map.baidu/geocoding/v3/?address=孙镇收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU 孙镇收费站|经度:117.70541929687147|纬度:37.037346543797625.
api.map.baidu/geocoding/v3/?address=蒲城收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU 蒲城收费站|经度:109.61161649430977|纬度:34.913113042128124.
......
python真⾹!源码这⾥下载