Python爬取高德地图POI数据获取【洗浴推拿指南】

认识高德地图API

打开“高德开放平台”,点击“开发文档”,在“Web服务”下寻找并点击“搜索API”。
在这里插入图片描述
我们使用“搜索API”,为的是爬取POI。所谓POI,即“Point of Interest”,中文名叫“兴趣点”。POI分为各种类型,比如学校、商场、快递点等等。这里我们以【洗浴推拿场所】为例。主要参数有三个:

  • key:高德密钥,这是高德给使用其API服务的人士的授权认证
  • types:POI类型,不同类型有不同的编码,如洗浴推拿场所是 071400
  • city:城市编码,也就是身份证号码前6位,如启东市的编码是 320681
    在这里插入图片描述
    在这里插入图片描述

爬取数据

下面以江苏省启东市为例,看看如何爬取单个县级单位的POI数据。

import requests            # 导入各模块
import json
import pandas as pd 
from pandas import Series, DataFrame
'''
更多Python学习资料以及源码教程资料,可以在群821460695 免费获取
'''
url = 'https://restapi.amap.com/v3/place/text'  # 搜索API
params = {'key':'你的高德密钥',  
          'types':'071400',     # 洗浴推拿场所
          'city':'320681'}      # 身份证前6位,以启东市为例    
res = requests.get(url,params)
jd = json.loads(res.text)       # 将JSON格式转化为Python字典格式
df1 = DataFrame(jd['pois'])     # 根据键取值,并放入数据框
df2 = df1[['address','adname','name','tel']]  # 只显示重要的几列
df2.head()    # 篇幅有限,只显示前5行

在这里插入图片描述
整合为函数
将上面爬取单个城市的过程整合为函数,这样只需要在自变量的位置放置城市编码即可获得当地的洗浴推拿场所数据。

def bath(city):
    url = 'https://restapi.amap.com/v3/place/text'
    params = {'key':'你的高德密钥',  
              'types':'071400',     # 洗浴推拿场所
              'city': city}         # 自变量,城市编码  
    res = requests.get(url,params)
    jd = json.loads(res.text)      # 将JSON格式转化为Python字典格式
    df = DataFrame(jd['pois'])     # 根据键取值,并放入数据框
    return df[['address','adname','name','tel']]  # 只显示重要的列

以河北省保定市徐水区为例,将其城市编码作为自变量代入函数。

bath('130609').head()    # 以徐水区为例,只显示前5条记录

在这里插入图片描述
现在,知道去哪洗澡了么?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值