这是一个爬取互联网开放的POI数据以及POI边界坐标代码集,包括高德和百度地图,可以爬取指定经纬度范围或者指定城市/省份的POI数据以及POI边界坐标(目前仅限百度)。
相关网站
代码目录介绍
baidu
百度地图POI数据爬取(WGS84坐标系)
app.py 程序入口文件
data 存放爬取的POI数据目录
boundary 百度POI边界坐标爬取目录
POI边界爬取结果存放目录
gaode
高德地图POI数据爬取
poi-city 划分行政区划来爬取指定城市范围内的POI数据
poi-pology 划分矩形网格来爬取指定城市的POI数据
poi-province 爬取指定省份内的POI数据
高德地图POI分类编码表.xlsx
高德地图城市编码表.xlsx
公共约定
app.py均为程序入口文件,修改配置以及执行都只需要关注该文件即可
transCoordinateSystem.py 为坐标转换代码,支持高德、百度、WGS84三种坐标系互转
POI分类可以用编码,也可以用对应的中文关键字
运行步骤
运行环境安装
开发语言:python 3+ 推荐安装anaconda,集成了许多常用的第三方库
开发工具:pycharm,其他的开发工具也行,看自己爱好
一些可能需要安装的第三方库:
pandas
urllib
xpinyin
requests
具体可以先运行看缺少哪些库,然后使用pip install进行安装。
修改配置
在各个目录下的app.py中修改爬取参数配置,需要修改的地方均以TODO 标识,各个参数在代码前的注释均有介绍,最主要是需要设置需要爬取的POI类型、爬取的范围(城市/省/经纬度范围)、对应的AK密钥。 其中AK密钥可在百度开放平台(
http://lbsyun.baidu.com/)或者高德地图开放平台(
启动
执行命令python app.py 即可开始爬取数据,不过由于范围大小、以及POI数量多少不一样,爬取花费的时间也不一样,范围越大,POI数量越多,花费的时间越长。比如爬取省的花费时间比爬一个城市花费的要长,爬取餐厅比爬图书馆花费的时间长。
常见问题:
启动后报错:"no module named xxxxx",这是因为你的Python环境里面没有相应的第三方模块,可以使用命令"pip install XXX"安装相应的模块,安装成功后重启即可,特别需要注意的是在gaode/poi-province中的代码需要安装shapefile模块,其安装命令名为pip install pyshp,如果仍然不懂,可以把报错信息粘贴到百度搜索。