由于小论文方向为电动汽车的路径规划,所以需要用到充电站的数据,因此需要从高德地图上爬充电站数据。本文学习自这篇文章。

高德有一个开放平台,点击进入,注册(登录)(有了账号之后返回首页)-控制台-应用管理-我的应用-添加,接下来会出现如下界面:

在服务平台的选项中,选择Web服务,这一步很重要!

选完之后可以在界面中得到你的key

接下来需要知道需要查询城市以及POI分类的代码,进入此界面下载参考文档

在之前所说的参考文章中,我找到了作者用来爬数据的代码

from urllib.parse import quote
from urllib import request
import json
import xlwt# 根据城市名称和分类关键字获取poi数据
def getpois(cityname, keywords):i = 1poilist = []while True:  # 使用while循环不断分页获取数据result = getpoi_page(cityname, keywords, i)# print(result)result = json.loads(result)  # 将字符串转换为jsonif result['count'] == '0':breakhand(poilist, result)i = i + 1return poilist# 数据写入excel
def write_to_excel(poilist, cityname, classfield):# 一个Workbook对象,这就相当于创建了一个Excel文件book = xlwt.Workbook(encoding='utf-8', style_compression=0)sheet = book.add_sheet(classfield, cell_overwrite_ok=True)# 第一行(列标题)sheet.write(0, 0, 'id')sheet.write(0, 1, 'name')sheet.write(0, 2, 'location')sheet.write(0, 3, 'pname')sheet.write(0, 4, 'pcode')sheet.write(0, 5, 'cityname')sheet.write(0, 6, 'citycode')sheet.write(0, 7, 'adname')sheet.write(0, 8, 'adcode')sheet.write(0, 9, 'address')sheet.write(0, 10, 'type')sheet.write(0, 11, 'typecode')sheet.write(0, 12, 'gridcode')sheet.write(0, 13, 'entr_location')sheet.write(0, 14, 'timestamp')sheet.write(0, 15, 'tel')sheet.write(0, 16, 'postcode')sheet.write(0, 17, 'tag')sheet.write(1, 18, 'shopid')sheet.write(1, 19, 'shopinfo')for i in range(len(poilist)):# 每一行写入sheet.write(i + 1, 0, poilist[i]['id'])sheet.write(i + 1, 1, poilist[i]['name'])sheet.write(i + 1, 2, poilist[i]['location'])sheet.write(i + 1, 3, poilist[i]['pname'])sheet.write(i + 1, 4, poilist[i]['pcode'])sheet.write(i + 1, 5, poilist[i]['cityname'])sheet.write(i + 1, 6, poilist[i]['citycode'])sheet.write(i + 1, 7, poilist[i]['adname'])sheet.write(i + 1, 8, poilist[i]['adcode'])sheet.write(i + 1, 9, poilist[i]['address'])sheet.write(i + 1, 10, poilist[i]['type'])sheet.write(i + 1, 11, poilist[i]['typecode'])sheet.write(i + 1, 12, poilist[i]['gridcode'])sheet.write(i + 1, 13, poilist[i]['entr_location'])sheet.write(i + 1, 14, poilist[i]['timestamp'])sheet.write(i + 1, 15, poilist[i]['tel'])sheet.write(i + 1, 16, poilist[i]['postcode'])sheet.write(i + 1, 17, poilist[i]['tag'])sheet.write(i + 1, 18, poilist[i]['shopid'])sheet.write(i + 1, 19, poilist[i]['shopinfo'])# 最后,将以上操作保存到指定的Excel文件中book.save(r'' + cityname + "_" + classfield + '.xls')# 将返回的poi数据装入集合返回
def hand(poilist, result):# result = json.loads(result)  # 将字符串转换为jsonpois = result['pois']for i in range(len(pois)):poilist.append(pois[i])# 单页获取pois
def getpoi_page(cityname, keywords, page):req_url = poi_search_url + "?key=" + amap_web_key + '&extensions=all&keywords=' + quote(keywords) + '&city=' + quote(cityname) + '&citylimit=true' + '&offset=25' + '&page=' + str(page) + '&output=json'data = ''with request.urlopen(req_url) as f:data = f.read()data = data.decode('utf-8')return dataif __name__ == '__main__':# 获取城市分类数据amap_web_key = '你的key'  # 申请的keycity_list = ["北京市"]  #可以修改对应的城市名或者代码poi_list = ['充电站']  #可以修改对应的POI分类名或者代码poi_search_url = "http://restapi.amap.com/v3/place/text"poi_boundary_url = "https://ditu.amap.com/detail/get/detail"# TODO 需要爬取的POI所属的城市名,以及分类名. (中文名或者代码都可以,代码详见高德地图的POI分类编码表)# TODO POI与城市编码网址 https://lbs.amap.com/api/webservice/downloadfor city in city_list:for poi in poi_list:pois = getpois(city, poi)# 将数据写入excelwrite_to_excel(pois, city, poi)print('写入成功')

然后就可以得到对应的xls文件啦!

最后,为什么说之前申请的时候选择服务平台很重要呢

因为我最开始申请的时候选择的是web端,然后使用相应的key时运行代码一直出现下面的问题:

重新申请“web服务平台”类型的key就可以解决这个问题啦!

高德地图获取所在城市POI数据相关推荐

  1. Python爬虫高德地图全国各个城市POI并导出表格(PyCharm )结尾含源码地址

    声明:本文仅做技术交流,请勿用于商业用途! 可爬取高德地图上各个城市公司.餐饮.医院.商家等信息并导出Excel,效果如图 1.前期准备 1.1 下载安装python并配置环境 这里推荐篇博客很详细: ...

  2. 使用高德地图获取对应城市下区的经纬度信息

    需求:根据城市名获取对应城市下区的经纬度信息,然后根据对应区具体的经纬度插入大头针视图. 好比如:当前是上海,那么我就需要,黄浦区,宝山区等区的经纬度信息.功能的实现非常简单,高德已经提供了相应的代码 ...

  3. Java从高德地图获取全国地铁站数据

    Java从高德地图获取全国地铁站数据. 数据来源(高德地图):http://map.amap.com/subway/index.html?&4401 采集代码 /*** 从高德地图地铁线路同步 ...

  4. python安装poi第三方库_使用Python获取城市POI数据

    1.数据接口: 本次使用百度地图开放平台中的地点检索API来获取城市POI数据,此次以矩形区域检索为例. 2.获取思路: 因为百度出于数据保护目的,单次访问服务最多同时返回400条数据,不过官方也给出 ...

  5. C# 解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市

    接口地址:http://api.map.baidu.com/telematics/v3/weather?location=上海&output=json&ak=hXWAgbsCC9UTk ...

  6. android 高德地图 sh1,百度、高德地图获取发布版(Release)SHA1

    一.简介: 在百度.高德地图开发中,申请key的时候,要两个版本的sha1值.一个是开发版(debug),一个是发布版(release). debug版本的sha1比较好获取,网上资料一堆,这里引用一 ...

  7. flutter集成高德地图获取位置

    flutter集成高德地图获取位置 准备工作 在创建安卓应用 获取SHA1 获取当前位置 添加依赖 文件配置 build.gradle文件配置 AndroidManifest.xml配置 获取定位 准 ...

  8. 高德地图某一城市地铁路线高亮解决方案

    高德地图某一城市地铁路线高亮解决方案 项目刚好有一个需求,在地图上按需高亮全部或者某一条地铁线路.找了蛮久没找到什么好的解决方案(也可能是自己菜),那就只能自己投机取巧咯.不多说上代码. <!- ...

  9. react高德地图定位--显示城市名字

    react函数组件高德地图定位–显示城市名字 一.注册账号并申请Key 1.首先,注册开发者账号,成为高德开放平台开发者 2. 登陆之后,在进入「应用管理」 页面「创建新应用」 3. 为应用添加 Ke ...

最新文章

  1. win10 UWP 应用设置
  2. mysql 5.6 binlog_format_ROW 格式binlog 在MySQL5.6上的数据恢复实验
  3. Python中的eval--字符串解析
  4. js压缩代码后怎么生成source map_??markdown生成导航? #x27;[toc]#x27;足矣
  5. Oracle统计信息的导出、导入
  6. 各种说明方法的答题格式_初中语文阅读答题公式 语文阅读理解万能公式大全...
  7. Javascript 判断 object 的特定类
  8. learning java AWT 布局管理器CardLayout
  9. mysql sql语句 参数化_参数化SQL语句
  10. pdf 加深 扫描件_怎样把扫描的字体加深 pdf扫描件字体加深
  11. 在Linux中进行GO语言安装
  12. php 输入经纬度查询位置,php 根据实际地址获取对应的经纬度
  13. CentOS8安装yapi
  14. python实现企业微信定时发送文本消息!下班自动提交,老板直夸我敬业!
  15. 3DSMAX渲染器哪个好以及建模方法大盘点?你学会了吗
  16. 致敬不凡·最美的星火:国产飞腾CPU研发力量
  17. 【高精度】高精度除以高精度 C++题解
  18. 提高PPT转PDF或汇出图片的解析度
  19. xmr monero miner
  20. 移动pc客户端迷你版泄露

热门文章

  1. 认识UWB的四个误区
  2. Devops常用工具软件之ansible部署使用
  3. 超详细的Charles抓包工具的使用
  4. angular7上传表格文件并展示在页面
  5. 你生日那天的宇宙有多美?Python制作小工具一键查询图片!
  6. MathML: 描述数学表达式
  7. 苹果svg解析自适应长图
  8. 打印从1到最大的n位数——《剑指offer》
  9. 三体2:黑暗森林 读后感
  10. CollapsingToolbarLayout的使用及折叠事件监听