python抓取北京所有社区医院经纬度

python抓取北京所有社区医院经纬度

第一步

先从北京政府的官网上获取了有北京所有社区医院信息的excel表格,然后利用pandas库将name列提取出来并转换为list对象

from pandas import DataFrame
df = pd.DataFrame(pd.read_excel('C:/Users/15643/Desktop/hospital_data.xls'))
data_set = np.array(df['name'])
data_set_lists = data_set.tolist()

第二步

利用百度地图开放平台来获取每个医院的经纬度

from urllib import request
import re

import urllib.parse as urp

def __get_location1__(name):
        my_ak = '  '    # 需要自己填写自己的AK


        qurey = urp.quote(name)
        try:
            url = 'http://api.map.baidu.com/place/v2/search?query='+qurey+'&tag='+'&region='+urp.quote('北京')+'&output=json&ak='+my_ak
            #print(url)
            req = request.urlopen(url)
            res = req.read().decode()
            lat = pd.to_numeric(re.findall('"lat":(.*)',res)[0].split(',')[0])
            lng = pd.to_numeric(re.findall('"lng":(.*)',res)[0])



            return lat,lng  #经度和纬度
        except:
            return 0,0

第三步

把之前提取到的各个医院的名字放在该函数里,获取到每一个医院的经纬度信息,并把提取到的数据保存在一个新的excel文件中

data_list=[]
for data_set_list in data_set_lists:
    lat,lng=__get_location1__(data_set_list)
    data_list.append([lat,lng])
df = pd.DataFrame(data_list,columns=['lat','lng'])
df.to_excel('C:/Users/15643/Desktop/1.xls',sheet_name='test')
print(df)

利用Arcgis进行可视化

1.将储存有经纬度的sheet表导入到arcgis中
2.选中该工作表单击右键,选择显示XY数据,x字段选择lng,y字段选择lat
3.再次选中该工作表单击右键,选择数据,导出数据后生成一个图层
以下为结果
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佩瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值