Python高德地图指定区域经纬度数据抓取

liftword4周前 (04-05)技术文章12

在这里插入图片描述

@Author : Runsen

高德地图【东莞理工学院】

  • 如下链接为从高德地图获取【东莞理工学院】这个区域边界经纬度坐标点的链接

https://ditu.amap.com/service/poiInfo?query_type=TQUERY&keywords=%E4%B8%9C%E8%8E%9E%E7%90%86%E5%B7%A5%E5%AD%A6%E9%99%A2

  • 可以发现,访问该链接返回的数据是以json格式存储的,如果直接存储返回的网页,那么默认保存格式应该为json
  • 目标是将该json文件中区域边缘点的经纬度坐标提取出来
# 引如requess库
import requests
# 下载数据
data = requests.get(url='http://ditu.amap.com/service/poiInfo?query_type=TQUERY&keywords=东莞理工学院')
data.text

# 导入json包
import json
# 利用json包把上述字符串解析成Python字典
js = json.loads(data.text)

在这里插入图片描述

# 再看嵌套的小字典data的keys
js['data'].keys()


dict_keys(['codepoint', 'code', 'suggestion', 'timestamp', 'lqii', 'is_general_search', 'result', 'keywords', 
'message', 'total', 'busline_list', 'bus_list', 'general_flag', 'bounds', 'version', 'busline_count', 'magicbox_data', 'interior_count', 'poi_list'])
# 查看输出,我们知道区域边缘坐标点应该是保存在key = 'poi_list'对应的value中的,把它提取出来
js['data']['poi_list']

g

以下是全代码

# 引如requess库
import requests
# 下载数据
data = requests.get(url='http://ditu.amap.com/service/poiInfo?query_type=TQUERY&keywords=东莞理工学院')
# 导入json包
import json
# 利用json包把上述字符串解析成Python字典
js = json.loads(data.text)
# 将结果保存下来,进行下一步解析
points1 = js['data']['poi_list'][0]['bound']
points2 = js['data']['poi_list'][1]['bound']
# 用‘_’来分割这些点,会生成一个列表
points= points1.split('_')
import pandas as pd
df = pd.DataFrame(points,columns=['lat_lng'])
# 把经度解析出来
df['longitude'] = df['lat_lng'].apply(lambda s:s.split(',')[0])
# 把纬度解析出来
df['latitude'] = df['lat_lng'].apply(lambda s:s.split(',')[1])
# 删掉第一个字段
df = df.drop('lat_lng',axis = 1)
# 把数据保存到本地
df.to_csv('./data/scau.csv',index = False)

现在试下抓取的数据 用的

相关文章

基于Python的地图绘制教程

本文将介绍通过Python绘制地形图的方法,所需第三方Python相关模块包括 rasterio、geopandas、cartopy 等,可通过 pip 等方式安装。1 示例代码1.1 导入相关模块...

GeoPandas轻松绘制交互式在线地图

1 简介今天为大家详细介绍新版geopandas中,利用explore()制作在线地图可视化的方法:2 在geopandas中制作在线地图可视化explore()方法类似我们熟悉的plot()方法,是...

Python使用bokeh及folium实现地理位置信息的交互可视化

Talk is cheap,show U the code!1.普通版(常规地图)import numpy as np from bokeh.plotting import figure, show,...

DeepSeek代码之旅2:卫星地图标记方法之——Pyside6实现

现在写代码,开始习惯把DeepSeek当作字典工具了,对于自己陌生的地方,问一问它,它均会给出详细的答案,包括使用方法方案,这以后的程序员真要得加油了!普通程序员危机重重了!不多说了,那个行业都要多学...

软件测试|教你用matplotlib绘制热力图

前言热力图,是一种通过对色块着色来显示数据的统计图表。绘图时,需指定颜色映射的规则。例如,较大的值由较深的颜色表示,较小的值由较浅的颜色表示;较大的值由偏暖的颜色表示,较小的值由较冷的颜色表示,等等。...