小白也能看懂的百度地图API使用案例(附全国高速收费站点数据~)

写在前面

大家好,我是饭都吃不起的南南

昨天帮朋友爬了全国的高速站点收费站这里下载

【http://www.bestunion.cn/gaosu/p_4/sfzlist.html】

由于该网站并没有西藏和海南省的高速收费站,所以并没有获取到,爬取这个挺简单的,我就不说了.(说多了容易戴上银手镯,我怂)

数据如下

调用百度API批量拾取坐标

接下来需要调用百度API批量拾取坐标,不会python的同学也没关系,可以打开【https://maplocation.sjfkai.com/】这个网站批量转,但是要注意,在地址前面加上所在地区,不然就会QAQ!!!

下面开始写代码【复制粘贴】

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 = df.values.tolist() 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 requestsimport json
def getUrl(*address): ''' 调用地图API获取待查询地址专属url 最高查询次数30w/天,最大并发量160/秒 ''' ak = '你的key' if len(address) < 1: return None else: for add in address: url = 'http://api.map.baidu.com/geocoding/v3/?address={inputAddress}&output=json&ak={myAk}'.format(inputAddress=add,myAk=ak) yield url

key未认证的用户每天调用api的次数限制为0.6w,认证后为3w

def getPosition(url): '''返回经纬度信息''' res = requests.get(url) json_data = json.loads(res.text)
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)

返回结果如下

http://api.map.baidu.com/geocoding/v3/?address=禹门口收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU禹门口收费站|经度:110.63335672712498|纬度:35.66392482522151.http://api.map.baidu.com/geocoding/v3/?address=龙门收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU龙门收费站|经度:114.31678129149563|纬度:23.676445987337065.http://api.map.baidu.com/geocoding/v3/?address=韩城收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU韩城收费站|经度:110.47940351187505|纬度:35.48304612715598.http://api.map.baidu.com/geocoding/v3/?address=芝川收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU芝川收费站|经度:110.41152009160538|纬度:35.38365354048929.http://api.map.baidu.com/geocoding/v3/?address=合阳收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU合阳收费站|经度:110.1669576741416|纬度:35.218007273465126.http://api.map.baidu.com/geocoding/v3/?address=澄城收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU澄城收费站|经度:109.94180943535946|纬度:35.00705384279941.http://api.map.baidu.com/geocoding/v3/?address=孙镇收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU孙镇收费站|经度:117.70541929687147|纬度:37.037346543797625.http://api.map.baidu.com/geocoding/v3/?address=蒲城收费站&output=json&ak=yvc2TW9lD5rMiubbR0or57iVuDQiFcNU蒲城收费站|经度:109.61161649430977|纬度:34.913113042128124.......

python真香!源码这里下载

(0)

相关推荐