使用百度地图POI爬取需要的数据

目标:爬取阿克苏地区内的所有医院数据。

一、百度地图开放平台注册,获取到AK。
(1)在百度地图开放平台完成注册。
这个平台是百度地图为开发者提供接口用的,有很多其他的功能,这里只讲POI爬取相关。
(2)登陆百度地图开放平台后
点击“控制台”->“应用管理”->"我的应用“->“创建应用”
在这里插入图片描述
然后进行相关设置
1.注意是选择服务端还是浏览器端
比如接下来我的操作是在浏览器进行的,所以我选择浏览器端
2.根据自身需要,设置IP白名单,限制调用ak的电脑,若不限制就设置为0.0.0.0
3.提交
在这里插入图片描述
在这里插入图片描述

创建成功后就可以在”我的应用“中看到自己创建的ak了,把它复制下来。
【关于ak的说明,详细的可以看首页的开发文档——web服务API部分】

二、有关配额的问题。
对于大多数未认证用户,每天的配额是有限的,不能超过十万次,每分钟不能超过6千次。
在爬取POI上,用一次ak生成的URL页面只能显示20个兴趣点的信息,而一个坐标范围内,最多能生成20个URL页面,即一个坐标范围内,用ak生成的URL页面最多能爬取到400个兴趣点的信息。
如果一个坐标范围内的兴趣点不超过400个,那么一个坐标范围就够了,但是如果超过400个,那就不够用了,需要具体的划分坐标。

三、请求URL。
尝试把下面这个网址复制到浏览器
(http://api.map.baidu.com/place/v2/search?query=%E5%8C%BB%E9%99%A2&region=%E9%98%BF%E5%85%8B%E8%8B%8F%E5%9C%B0%E5%8C%BA&page_size=20&page_num=0&output=json&ak=9wDdjFgfFqN9dYvoYPEqK0oadGNb9ARw)
(ak换成你自己的ak)

可以看到这样一个页面:
在这里插入图片描述

这就是爬取到的其中一页阿克苏地区医院的信息。
将http://api.map.baidu.com/place/v2/search?query=医院&region=阿克苏地区&page_size=20&page_num=0&output=json&ak=9wDdjFgfFqN9dYvoYPEqK0oadGNb9ARw具体解释一下:
”query=医院” ——查询关键字是医院
”region=阿克苏地区“ ——查询地区是阿克苏地区
“page_size=20&page_num=0”——一共能生成20个URL页面,这个是第0个
【程序语言的排号,一般都是从0开始的,想看下一个就把page_num改为=1,以此类推】由于一页只能生成20个兴趣点,所以20个URL页面就是400个兴趣点。
在这里插入图片描述
从total这里可知道,搜索到的总共108个位置信息,小于400,所以不需要对坐标范围进一步划分。【大于400的情况有点麻烦,下回写吧】

“output=json”—— 以json格式来输出
“ak=9wDdjFgfFqN9dYvoYPEqK0oadGNb9ARw”—— ak是9wDdjFgfFqN9dYvoYPEqK0oadGNb9ARw(就是刚刚申请的ak)

所以如果想找其他地区的其他位置信息,就把对应的关键字修改了就Ok

然后把json转换为excel格式
可使用在线转换器TableConvert(百度搜索),注意格式就行,其他问题不大
在这里插入图片描述

  • 1
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值