目录 一、数据来源 二、全部代码 三、使用介绍 3.1 获取全省所有地级市经纬度信息 3.2 获取某个地级市下所有区县经纬度信息 3.3 获取全省所有区县经纬度信息 一、数据来源 本文所涉及的市、县级经纬度数据均来自于阿里云,数据更新于2020年4月。 二、全部代码 import requests import json import pandas as pd import re def get_feature_list(url): r = requests.get(url) data = json.loads(r.text) return data['features'] def get_data(city_data): df = [] for city in city_data: city_code = city['properties']['adcode'] city_name = city['properties']['name'] lon,lat = city['properties']['center'] df.append([city_code,city_name,lon,lat]) df = pd.DataFrame(df,columns=['城市代码','城市名称','经度','维度']) return df def main(url,whether): #是则爬取一级行政单位,否则爬取二级行政单位 data = get_feature_list(url) if whether: city_data = get_data(data) city_data.to_csv('C:/users/dell/Desktop/city.csv',encoding='gbk',index=False) else: county = pd.DataFrame() pattern = '\d+' for city in data: city_code = city['properties']['adcode'] url = re.sub(pattern,str(city_code),url) county_data = get_data(get_feature_list(url)) county = pd.concat([county,county_data]) print(city['properties']['name']+'下所有区县保存完毕') county.to_csv('C:/users/dell/Desktop/county.csv',encoding='gbk',index=False) if __name__=='__main__': #改变此处的url,即可获取不同地区的经纬度信息(其中,code后面对应的数字唯一对应一个地区) url = 'https://geo.datav.aliyun.com/areas/bound/geojson?code=420000_full' main(url,False) #True则爬取二级行政单元,False则爬取三级行政单元 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 三、使用介绍 以下,均以安徽省为例 3.1 获取全省所有地级市经纬度信息 打开上述数据网址,在搜索栏中输入安徽省,并复制红框处的地址,将上述代码中的url换成该地址即可。 此时,如果想要获取安徽省所有地级市的经纬度信息,则将main函数中的第二个参数设置为True,最终爬取结果如下: 3.2 获取某个地级市下所有区县经纬度信息 若想要获取合肥市下所有区县的经纬度信息,同理,在搜索栏中输入合肥市,将红框处的地址复制到代码中的url处,并设置main函数中第二个参数为True 最终,爬取结果如下: 3.3 获取全省所有区县经纬度信息 若想获取安徽省下所有区县的经纬度信息,则将安徽省所对应网址复制到url处,并设置main函数第二个参数为False即可。最终,爬取的结果如下: 以上,就是本次分享的全部内容~ ———————————————— 版权声明:本文为CSDN博主「皖渝」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shine4869/article/details/113184292 |
|
来自: 昵称QAb6ICvc > 《地图制图》