今天分享个有意思的、容易实现的爬虫项目:通过调用高德地图API,获取广州、佛山“指定商店”(这里使用了“麦当劳”作为示例)的所有分店地址、电话信息。
先看看最终的效果: 大概8秒完成
(gif图片大于5M,放不上来,微信文章里可以看)
适用场景:
快速抓取指定地区的所有门店信息。举例,公司销售想拓展客户,我就把爬虫把广东省所有相关门店的城市、区、门店名称、电话、详细地址信息抓取下来,以便销售有计划地走访拓展。
实现方式:
最开始我想到的方式,是打开网页版高德地图,然后通过模拟人操作输入关键词,抓取响应结果的文本进行提取。试了下,事倍功半!
后来了解到高德提供了API,尝试调用高德API的方式实现,真是多快好省,事半功倍!从工作原理角度,大致可以划分为这么几个步骤:
• 步骤1. 申请高德开发“秘钥”
• 步骤2. 利用秘钥,按照一定的规则组件URL
• 步骤3. 将URL响应的结果保存到本地
就这么简单!
1. 申请高德开发“秘钥”
打开百度检索高德开发者平台,注册并创建自己的应用,然后再创建自己的“秘钥” 。
注册和申请都是免费的,不过免费的秘钥调用有额度限制。作为学习,还是足够使用了。下面是我自己的秘钥界面:
详细步骤,可以参考平台的官方指南:
https://lbs.amap.com/api/webservice/guide/create-project/get-key
2. 利用秘钥,按照一定的规则组件URL
下面是一个示例,检索广州麦当劳门店信息,返回结果json格式,每页显示20条结果,该链接显示第1页的返回结果。
上图中的参数7:秘钥。
参数很多,有些是必须,有些是可选的。更多参数说明,请参考下面官方链接: https://lbs.amap.com/api/webservice/guide/api/search
拼装完成之后,直接把URL放到浏览器中就可以看到结果。是不是很方便,结果都立马给你了,你要做的只是把这堆json格式的结果进行提取即可。
3. 将URL的响应结果保存到本地
这里需要做的,只是将先看看检索总共有多少页,然后遍历每一页结果按照指定格式提取即可。
源代码链接:见微信位置末尾
备注:记得替换自己的秘钥!