您当前的位置: 首页 >  Python

嗨学编程

暂无认证

  • 0浏览

    0关注

    1405博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

嗨学编程 发布时间:2019-10-23 15:30:21 ,浏览量:0

认识高德地图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条记录

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

关注
打赏
1663681728
查看更多评论
立即登录/注册

微信扫码登录

0.0535s