Python——使用高德API获取POI(以深圳南山医疗保健服务POI为例)

以下内容为原创,转载请注明出处。

 1 import xlwt #创建Excel,见代码行8,9,11,25,28;CMD下:运行pip install xlwt进行安装
 2 import urllib.request # url请求,Python3自带,Python2与3中urllib的区别见:http://blog.csdn.net/Jurbo/article/details/52313636
 3 from bs4 import BeautifulSoup # 快速获取网页标签内容的库;CMD下:运行pip install beautifulsoup4进行安装
 4 import re # 使用正则表达式的库,代码行7,快速学习见:http://www.runoob.com/regexp/regexp-syntax.html
 5 poiTag = ["id","name","type","typecode","biz_type","address","location","tel","pname","cityname","adname"] #返回结果控制为base时,输出的POI标签类别
 6 poiSoupTag = ["idSoup","nameSoup","typeSoup","typecodeSoup","biz_typeSoup","addressSoup","locationSoup","telSoup","pnameSoup","citynameSoup","adnameSoup"] #包装对应的Soup
 7 pattern = re.compile("(?:>)(.*?)(?=<)",re.S) # 组织正则表达式
 8 poiExcel =xlwt.Workbook() # 新建工作簿
 9 sheet = poiExcel.add_sheet("poiResult") # 新建“poiResult”的工作表
10 for colIndex in range(len(poiTag)):
11     sheet.write(0,colIndex,poiTag[colIndex]) # 写表头
12 offset = 10 # 实例设置每页展示10条POI(官方限定25条)
13 maxPage = 10 # 设置最多页数为10页(官方限定100页)
14 types = "090000" # 示例类别为医疗保健服务POI,下载:http://a.amap.com/lbs/static/zip/AMap_poicode.zip
15 city = "440305" # 示例类别为深圳市南山区,下载:http://a.amap.com/lbs/static/zip/AMap_adcode_citycode.zip
16 for pageIndex in range(1, maxPage + 1):
17     try:
18         url = "http://restapi.amap.com/v3/place/text?&keywords=&types=" + types + "&city=" + city + "&citylimit=true&output=xml&offset=" + str(offset) + "&page="+ str(pageIndex) + "&key=你的key&extensions=base"
19         # 请求的结构化url地址如上;请使用自己的key,见:http://lbs.amap.com/api/webservice/guide/api/search/
20         poiSoup = BeautifulSoup(urllib.request.urlopen(url).read(),"xml") #读入对应页码的页面
21         for tagIndex in range(len(poiTag)):
22             poiSoupTag[tagIndex] = poiSoup.findAll(poiTag[tagIndex]) # 根据Tag读对应页码的POI标签内容
23         for rowIndex in range(len(poiSoupTag[0])):
24             for colIndex in range(len(poiSoupTag)):
25                 sheet.write(len(poiSoupTag[0]) * (pageIndex - 1) + rowIndex + 1, colIndex, re.findall(pattern,str(poiSoupTag[colIndex][rowIndex])))
26                 # 根据正则表达式提取内容,并在对应行与列写入
27     except Exception as e:
28         print(e) # 设置错误输出
29 poiExcel.save("E:/POI&" + types + "&" + city + ".xls") # 保存
30 print("Done!") # 结束

注:页面过大时,部分单元格有概率出现重写错误(猜测和原页面每页数据不完整有关),因为设置了报错,不影响运行。但会导致极小部分POI丢失。

时间: 2024-10-19 21:42:01

Python——使用高德API获取POI(以深圳南山医疗保健服务POI为例)的相关文章

百度API获取位置范围内的周边服务

百度地图API是一套为开发者免费提供的基于百度地图的应用程序接口,包括JavaScript.iOS.Andriod.静态地图.Web服务等多种版本,提供基本地图.位置搜索.周边搜索.... [html] view plain copy <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=(百度API key,可免费申请)"></script>

Python 操作Sonqube API 获取检测结果并打印

1.需求:每次Sonqube检查完毕后,需要登陆才能看到结果无法通过Jenkins发布后直接看到bug 及漏洞数量. 2.demo:发布后,可以将该项目的检测结果简单打印出来显示,后面还可以集成钉钉发送到群里. 1 # -*- coding: UTF-8 -*- 2 import sys 3 reload(sys) 4 sys.setdefaultencoding('utf8') 5 6 ''' 7 @author:jmmei 8 @file: SonarQubeDingtalk.py 9 @t

【高德地图API】从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索

摘要: 地图服务,大家能想到哪些?POI搜素,输入提示,地址解析,公交导航,驾车导航,步行导航,道路查询(交叉口),行政区划等等.如果说覆盖物Marker是地图的骨骼,那么服务,就是地图的气血.有个各种各样的地图服务,我们的地图应用才能变得有血有肉,活灵活现. 第四篇拆成了几个要点,本篇主要讲搜索服务.包括周边搜索,关键词搜索,范围搜索,搜索提示(自动完成,输入提示),行政区域,交叉路口,检索自有数据(云图). demo:http://zhaoziang.com/amap/zero_4_1.ht

高德API+Python解决租房问题

项目简介:编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时.项目由ekCit发布在实验楼,完整教程及在线练习地址:高德API+Python解决租房问题,可以直接在教程中下载代码使用demo. 一.介绍 1. 背景 项目来自一段租房血泪史(夸张):事情是这样的,笔者是接着念大四准备考研,而室友是应届毕业在找工作,说白了就是都没有钱,于是打算合租.因为穷所以不可能找有门店的的中介

高德API+.NET解决租房问题(JS相关)

在线地址:58同城品牌公寓高德搜房 Github地址:https://github.com/liguobao/58HouseSearch 知乎专栏(点赞用的):高德API+Python解决租房问题(.NET版) 经过了一个星期的修补补,以及小伙伴奉献的代码,整个项目基本处于基本稳定运行的状态. 同时加入了一下新功能: IP定位:调用高德地图IP定位功能实现 移动地图中心定位:调用高德地图移动地图定位实现 定位城市名转58同城城市名以获得准确58同城城市域名:抓取58同城城市分类信息 优化数据源.

高德API+.NET解决租房问题(可能是最可靠房源:上海互助租房)

作者:李国宝链接:https://zhuanlan.zhihu.com/p/22113421来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. PS:最近点赞和关注的小伙伴有点多,感觉我都变得勤奋多了. 次标题:上海专版-互助租房高德搜房 房源来源: 互助租房(http://www.huzhumaifang.com/Renting/index.html) 互助租房微博(http://weibo.com/u/5389952376) 微博简介: 简介: 这里是新浪微博“互

【高德API】如何利用MapKit开发全英文检索的iOS地图

原文:[高德API]如何利用MapKit开发全英文检索的iOS地图 制作全英文地图的展示并不困难,但是要制作全英文的数据检索列表,全英文的信息窗口,你就没办法了吧.告诉你,我有妙招!使用iOS自带的MapKit来展示全球英文底图,结合上高德API的中英文检索功能,就能打造POI数据最丰富,英文展示全方位的纯英文地图啦!看看截图,是不是浑然天成? ----------------------------------------------------------------------------

调用ZoomEye API获取信息

最近在提高自己编程能力,拿一些实用的小工具练下.该脚本为python语言,主要涉及模块urllib,json,os模块. 功能:调用ZoomEye API获取信息 import urllib.request import json import os def login(): username = input("username:") password = input("password:") url = "https://api.zoomeye.org/

Python调用微博API

上头叫通过微博ID获取用户发布过的历史微博内容,于是研究了下新浪微博提供的API 1 首先在微博开放中心下"创建应用"创建一个应用,应用信息那些随便填,填写完毕后,不需要提交审核,需要的只是那个app-key和app-secret 2 在"微博开放平台"的"管理中心"找到刚才创建的应用,点开这个应用,点开左边"应用信息"栏,会看见"App key"和"App Secret"的字样,这两个