python批量地址爬取(高德地图)

python批量地址爬取(高德地图)

码农世界 2024-05-26 后端 74 次浏览 0个评论

在地理分析中,通常需要自己获取经纬度数据,当地址只有几个的时候,可以直接在网页输入地址拾取经纬度即可,而当地址数量庞大,比如几十个几百个的时候,肯定是耗费时间的,这时就可以借助python与地图接口来进行经纬度的爬取。

需求:已有目标地址,需要通过地址来获取该地址的经纬度

1.高德地图接口的准备

在编辑代码之前需要先在高德地图中注册账号(已有就可以直接登录),申请密钥,才能正常爬取数据。

https://lbs.amap.com/tools/picker

python批量地址爬取(高德地图)

注册账号登录以后,就可以进入控制台,在界面左侧点击“应用管理–我的应用”

python批量地址爬取(高德地图)

然后点击创建新应用,第一次创建会有教程提示,跟下面一样

python批量地址爬取(高德地图)

应用名称可以自己取,应用类型也可以看自己的需求

python批量地址爬取(高德地图)

然后选择“添加key”

python批量地址爬取(高德地图)

在添加key处,名称随意,但服务平台一定要选择“web服务”

python批量地址爬取(高德地图)

然后提交,就可以获得密钥

python批量地址爬取(高德地图)

上图中框起来的地方就是自己的密钥,要复制到代码中

2.注意:地址信息如果比较模糊的话,需要进行处理一下,在地址前加上“某市某县”,使结果更加准确。

3.代码

from urllib import request
import requests
import json
import time
from bs4 import BeautifulSoup
import pandas as pd
# 保存路径
writer = pd.ExcelWriter(r"创建的xlsx的空表格.xlsx")
# 文件格式无要求,有一列目标地址即可
add = pd.read_excel(r"自己已有的地址数据的表格.xls")
list_addr = []
list_level = []
lon = []
lat = []
for addr in add["地址列的名称"]:
    try:
        base = 'https://restapi.amap.com/v3/geocode/geo?key=自己的密钥&address=' + addr
        response = requests.get(base)
        result = json.loads(response.text)
        lon1 = result['geocodes'][0]['location'].split(",")[0]
        lat1 = result['geocodes'][0]['location'].split(",")[1]
        formatted_address = result['geocodes'][0]['formatted_address']
        level = result['geocodes'][0]['level']
        lon.append(lon1)
        lat.append(lat1)
        list_addr.append(formatted_address)
        list_level.append(level)
        print(formatted_address, lon1, lat1)
        time.sleep(0.1)
    except:
        list_level.append("无地址")
        list_addr.append("无地址")
        lon.append("无地址")
        lat.append("无地址")
    continue
# print(list1)
lists = [list_addr, list_level, lon, lat]
data2 = pd.DataFrame(lists)
data3 = data2.T
data3.columns = ["名字", "级别", "经度", "纬度"]
data3.to_excel(writer, sheet_name="数据结果", index=None)
writer._save()
print("保存完毕")

运行以后就可以看到原本空的表格有数据了,正常运行的话,也会有每个点的经纬度输出。

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

python批量地址爬取(高德地图)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

python批量地址爬取(高德地图)

python批量地址爬取(高德地图)

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!python批量地址爬取(高德地图)

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

python批量地址爬取(高德地图)

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

python批量地址爬取(高德地图)

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

python批量地址爬取(高德地图)

六、面试宝典

python批量地址爬取(高德地图)

python批量地址爬取(高德地图)

简历模板python批量地址爬取(高德地图)
python批量地址爬取(高德地图) 若有侵权,请联系删除

转载请注明来自码农世界,本文标题:《python批量地址爬取(高德地图)》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,74人围观)参与讨论

还没有评论,来说两句吧...

Top