关于爬虫系列,前三篇文章分别讲了三个简单案例,分别爬取了《你好,李焕英》电影豆瓣热门短评、58同城在售楼盘房源信息以及安居客网二手房小区详情页数据。通过前三个案例,相信大家都对爬虫有了简单了解和运用,对于大部分网站来说呢,爬虫的基本流程都相差不多,主要区别在于解析网站标签的xpath语句不同,俗话说得好,熟能生巧,多去尝试爬取不同网站,慢慢地就会熟练使用了。
这篇文章呢,主要来谈一谈如何利用Python调用百度地图API接口,将研究区域看成是一个矩形,以固定经纬度间隔划分网格,爬取百度地图上的兴趣点(Point of interest),获取的字段主要包括名称、纬度、经度、详细地址、省份、市以及区共7个字段。 对于有些知识点,比如百度地图的APK密钥注册等,网上各大博客都有很好的讲解,这里我会放上参考链接,小伙伴们各取所需,本文重点主要放在POI数据爬取的代码上。好了,废话不多说,开始走起~
1. 在百度地图开放平台注册,获取AK密钥
在爬取POI数据之前,必须先在百度地图开放平台上完成注册拿到AK密钥,才能调用百度地图的API接口,关于这部分本文不作过多的详解,具体可以参考如下博客:
2. 获取石家庄市大致范围的经纬度
由于我们将研究范围看作是一个矩形,必然需要矩形的四个夹角经纬度,也就是说只要得到左下角和右上角经纬度,就可以大致知道地图所在位置。那么如何获取到左下角和右上角经纬度呢?在这篇博客零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(进阶篇)中提及到一种方法,代码已经编好,只需将下面代码复制粘贴到txt文件中,然后修改文件后缀名为.html即可。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
#panel{
position:absolute;
left:5px;
top:5px;
}
#result{
background: #fff;
padding:5px;
}
</style>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=1XjLLEhZhQNUzd93EjU5nOGQ"></script>
<title>添加行政区划</title>
</head>
<body>
<div id="allmap"></div>
<div id="panel">
<div>
<input type="text" id="keyword" value="石家庄市"/>
<input type="button" value="查看范围" id="commitBtn"/>
边界经纬度坐标
<textarea id="pathStr"></textarea&g