liuhuanku / poi

百度以及高德地图POI数据和POI边界坐标数据(目前仅限百度)爬取代码,采用Python编写

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

这是一个爬取互联网开放的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/)或者高德地图开放平台( https://lbs.amap.com/)上申请。

启动

执行命令python app.py 即可开始爬取数据,不过由于范围大小、以及POI数量多少不一样,爬取花费的时间也不一样,范围越大,POI数量越多,花费的时间越长。比如爬取省的花费时间比爬一个城市花费的要长,爬取餐厅比爬图书馆花费的时间长。

常见问题以及解决措施:

  • 启动后报错:"no module named xxxxx",这是因为你的Python环境里面没有相应的第三方模块,可以使用命令"pip install XXX"安装相应的模块,安装成功后重启即可,特别需要注意的是在gaode/poi-province中的代码需要安装shapefile模块,其安装命令名为pip install pyshp,如果仍然不懂,可以把报错信息粘贴到百度搜索。
  • 运行后控制台报错,可以查看打印的数据(高德或百度POI爬取返回的数据),例如:{"status":"0","info":"INVALID_USER_KEY","infocode":"10001"},重点查看info的内容,此处INVALID_USER_KEY0表示该密钥无效,需要去高德开放平台检查账号是否被封禁,以及申请的密钥是否是web服务类型(这个很重要,如果是其他类型,则没法使用该功能)。
附录

有什么优化建议或者发现问题欢迎向我提问,POI,宜出行都可以,qq:917961898

About

百度以及高德地图POI数据和POI边界坐标数据(目前仅限百度)爬取代码,采用Python编写


Languages

Language:Python 100.0%