Python实现批量获取地址的经纬度

 更新时间:2025年05月19日 09:08:07   作者:认真写程序的强哥  
在地理分析中,通常需要自己获取经纬度数据,所以本文就来和大家介绍一下如何借助python与地图接口来进行经纬度的爬取,感兴趣的小伙伴可以了解下

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

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

1.高德地图接口的准备

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

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

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

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

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

然后选择“添加key”

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

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

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

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中的多线程锁lock=threading.Lock()使用方式

    python中的多线程锁lock=threading.Lock()使用方式

    这篇文章主要介绍了python中的多线程锁lock=threading.Lock()使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Python环境变量设置方法

    Python环境变量设置方法

    默认情况下,在windows下安装python之后,系统不会自动添加相应的环境变量。此时在命令行输入python命令是不能执行的,配置方法如下
    2016-08-08
  • Python Django框架介绍之模板标签及模板的继承

    Python Django框架介绍之模板标签及模板的继承

    今天给大家带来Python Django框架的相关知识,文中对模板标签及模板的继承介绍的非常详细,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • Python3数据库操作包pymysql的操作方法

    Python3数据库操作包pymysql的操作方法

    这篇文章主要介绍了Python3数据库操作包pymysql的操作方法,文章通过实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • Python调用PC摄像头实现扫描二维码

    Python调用PC摄像头实现扫描二维码

    PC摄像机扫描二维码的应用场景很广泛,可以应用于各种需要快速扫描、识别和管理的场景,本文就来具体讲讲如何用Python实现这一功能吧
    2023-05-05
  • Python使用Networkx实现复杂的人物关系图

    Python使用Networkx实现复杂的人物关系图

    日常工作、生活中我们经常会遇到一些复杂的事务关系,比如人物关系,那如何才能清楚直观的看清楚这些任务关系呢?所以小编给大家介绍了Python如何使用Networkx实现复杂的人物关系图,文中通过代码示例讲解的非常详细,需要的朋友可以参考下
    2023-11-11
  • python解决字典中的值是列表问题的方法

    python解决字典中的值是列表问题的方法

    这篇文章主要介绍了字典中的值是列表问题,先用value连成一个str,最后用str.split()作一个转换,生成一个列表.看了python cookbook,上面正好有一个recipe讲到如何处理这样的问题
    2013-03-03
  • python的函数参数你了解吗

    python的函数参数你了解吗

    这篇文章主要为大家详细介绍了python的函数参数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Python中文纠错的简单实现

    Python中文纠错的简单实现

    这篇文章主要是用 Python 实现了简单的中文分词的同音字纠错,目前的案例中只允许错一个字,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 使用Pandas的Series方法绘制图像教程

    使用Pandas的Series方法绘制图像教程

    今天小编就为大家分享一篇使用Pandas的Series方法绘制图像教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论