Python根据地理位置,得到省市区(高德地图api)

news/2024/11/22 9:18:13/

在这里插入图片描述
ᵕ̈ ᑋᵉᑊᑊᵒ 第一次写博客,主要想记录一下自己学习的过程,希望可以互相探讨哈!
这个文章是我在工作中碰到的问题,主要诉求是根据一些具体的地理位置,得出其所在的省市区。我的解决方法附在下面,但还是不够完善。如果想根据地理位置得到经纬度的可以参考这篇→第壹大魔王的博客,我的代码也是从他的修改滴!

一、数据处理

本文章用的excel文件的链接地理位置.xlsx
在这里插入图片描述本文选取如上的地址数据,可能存在地址过长导致无法获取所需信息的问题,所以先在单元格B2输入公式=left(A2,20),然后下拉至底部。清洗后的数据如下:
在这里插入图片描述
二、解析页面

百度搜索高德地图坐标拾取器,得到如下页面:
在这里插入图片描述右键点击空白地方,选择检查,点到Network,JS
在这里插入图片描述
在搜索框输入故宫博物馆,点击搜索,右侧出现开头为text的文件,选中它随后点击Preview,可以看到我们所需的信息在里面。
在这里插入图片描述
点击Headers,可以得到所需信息如下
在这里插入图片描述
三、爬虫代码❛‿˂̵✧

import requests
import json
import pandas as pddef get_data(address):url = f'https://restapi.amap.com/v3/place/text?s=rsv3&children=&key=6e79f6d236e295632f21b385e363b6e8&offset=1&page=1&extensions=all&city=110000&language=zh_cn&callback=jsonp_702014_&platform=JS&logversion=2.0&appname=https://lbs.amap.com/tools/picker&csid=6B8236BF-F308-412B-A131-37ECACA4657B&sdkversion=1.4.18&keywords={address}'headers = {'Cookie': '你的Cookie'  ,'Host': 'restapi.amap.com','Referer': 'https://lbs.amap.com/','User-Agent': '你的User-Agent'}response = requests.get(url, headers=headers)result = response.text[14:-1]result = json.loads(result)  #如果报错,可以print(result)看一下if  result['status']=="0":  #运行过程中,可能出现无法根据地址搜索到省市区的情况,因此添加if和elif语句return 1elif not result['pois']:return 2else:    #city、province、space、district如果不知道怎么来的,可以print(result)看一下city = result['pois'][0]['cityname']province = result['pois'][0]['pname']space = result['pois'][0]['name']district = result['pois'][0]['adname']return f'{space}省、市、区(县)是:{province}、{city}、{district}'df = pd.read_excel(r'D:\新建文件夹\地理位置.xlsx')  #导入存有地址的excel文件
df['shengshi'] = 'shengshi'   #在该文件中新建一列名为shengshi,这个名字可以自己取
dim = df.shape  
[row, col] = dim  
for i in df.values:b = i[0]  #i[0]因为在dataframe中第一列为0,b为文件中地址那列i[1] = get_data(b)  #将b即地址那列数值传入get_data函数运行,得到上方函数return的结果
df.to_excel(r'D:\新建文件夹\地理位置2.xlsx')  #最后把文件保存到D盘

最终得到的结果如下,该结果有一些不准确,爬取的省市区的信息有一些错误。

在这里插入图片描述


http://www.ppmy.cn/news/427049.html

相关文章

Vue-高德地图的基本使用(@amap/amap-jsapi-loader)

高德使用步骤 1、注册并登录高德开放平台2、 安装高德依赖3、在需要的页面引入该依赖4 .初始化地图1、设置一个地图容器并设置大小2、初始化地图 5、效果图6、 完整代码 1、注册并登录高德开放平台 高德开放平台: 高德开放平台 首先,注册开发者账号,成…

关于arcgis打开.dat文件

关于arcgis打开.dat文件 利用envi classic 利用envi classic 打开envi classic,利用File ,open image file 打开.dat文件。 如图为分类结果.dat文件。 再利用file,save file as ,envi standard进行图片另存。 另存后的.dat文…

高德地图--AMap.DistrictSearch

我想要绘制某个区域的地图 AMap.DistrictSearch 用于行政区域的查询&#xff0c;但是直接将 高德地图上的 demo 拷贝过去&#xff0c;没有效果&#xff0c;原来是 秘钥没加&#xff08;注意不是key,key已经加了&#xff09; 在引入 地图 资源之前加入 <script type"…

AMap(高德官方图层)

实现代码&#xff1a; <!doctype html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"initial-scale1.0, user-scal…

AMap(创建基础地图)

实现代码 <!doctype html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"initial-scale1.0, user-scalableno, widt…

vue-amap安装和使用

之前分享了异步加载高德地图api的用法&#xff0c;现在记录一下vue-amap的用法。 vue-amap 是饿了么开源的一套基于 Vue 2.0 和高德地图的地图组件。 数据状态与地图状态单向绑定&#xff0c;开发者无需关心地图的具体操作。 官方文档&#xff1a;组件 | vue-amap 步骤如下&…

高德地图No implementation found for long com.autonavi.amap.mapcore.MapCore

此篇博客最后更新时间写自2016.5.18。当下高德地图jar版本为3.3.1。 使用高德地图碰到此问题&#xff0c;纠结许久&#xff08;接近4个多小时&#xff09;。 记录在此&#xff0c;希望遇到相同问题的读者可以有所借鉴。 错误截图&#xff1a; 导致问题的原因主要有两种&#x…

Android高德地图开发--读取解析KML文件并显示在地图上

先来看效果图 1 本文实现的功能如下&#xff1a; 1.1 浏览本地文件&#xff0c;找到KML文件&#xff1b; 1.2 读取解析KML文件&#xff1b; 1.3 将KML文件中的位置信息显示在高德地图上&#xff1b; 总体框架和思路&#xff1a;打开文件对话框浏览*.kml文件&#xff0c;…