Google Map 的 API文档:https://developers.google.com/maps/documentation/places/web-service/search#PlaceSearchRequests

这里使用的其中的 Place Search Requests 接口。需要先注册谷歌地图的开发者平台获取 key。

原理上是按照一定的格点来请求周围的POI。每次请求会返回大约十几个POI点信息,类似于一种采样,如果在POI比较密集的地区,格网比较大会漏过许多POI。

下面这段代码爬取的是曼谷城区的部分POI

# 从谷歌API获取POI
import urllib.request
from urllib.parse import quote
import string
import json
import codecs
import numpy# 参数
lonRange = [100.30, 100.60]  # the range of longitude 经度的范围
latRange = [13.50, 14]  # the range of latitude 纬度的范围
lonDivision = 0.005 # 分块查询,每格约0.4km
latDivision = 0.005 # 分块查询,每格约0.4km
radius = 500 # 查询参数 半径 500m
TIMEOUT = 30
outfile = "output.csv"#   Google Key
googleKey = "在这里填你自己的key"#restaurant_j = json_format(res_test)
print('开始爬取')
print('共有'+str(((lonRange[1]-lonRange[0])/lonDivision+1)*((latRange[1]-latRange[0])/latDivision+1))+'次请求')
count = 0
countLine = 0place_id_list = []
csvFile=codecs.open(outfile,'a','utf-8')
csvFile.write('lat,lon,types\n')for lon in numpy.arange(lonRange[0], lonRange[1], lonDivision):print('已进行'+str(count)+'次请求,得到'+str(countLine)+'条有效信息')for lat in numpy.arange(latRange[0], latRange[1], latDivision):print('已进行'+str(count)+'次请求,得到'+str(countLine)+'条有效信息')#   发请求latlon = str(lat)+','+str(lon)basic_url = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?key={0}&location={1}&radius={2}'  url = basic_url.format(googleKey,latlon,radius)url = quote(url, safe = string.printable)req = urllib.request.urlopen(url,timeout=TIMEOUT)response = req.read().decode('utf-8')responseJSON = json.loads(response)for item in responseJSON['results']:#对每个POIplace_id = item['place_id']types = item['types']#如果id不在已有的list里if not place_id in place_id_list:#如果类型中有point_of_interestif "point_of_interest" in types:place_id_list.append(place_id)line = str(item['geometry']['location']['lat']) + ',' + str(item['geometry']['location']['lng'])for type in types:line = line + ',' + str(type)csvFile.write(line + '\n')countLine = countLine + 1count = count + 1
csvFile.close()
print('结束')

爬取结果使用 ArcGIS Pro 可视化如下:

Python 爬取 Google Map POI相关推荐

  1. PYTHON爬取高德地图POI

    PYTHON爬取高德地图POI 使用高德地图API爬取POI数据,首先需要申请高德地图API的KEY和获取<POI分类编码表>,本实例的最后结果是根据不同的poi类型分别生成多个EXCEL ...

  2. Python爬取Google地图上指定城市经纬度

    欢迎关注博主的微信公众号:"智能遥感". 该公众号将为您奉上Python地学分析.爬虫.数据分析.Web开发.机器学习.深度学习等热门源代码. 该代码是对Google地图的爬取,首 ...

  3. 使用python爬取google翻译的语音

    使用简单方法爬取 请求的url的参数中重要的有四个: 1 q:要播放的译文 2 tl:目标语言代码,la为拉丁语,其他语言代码可以通过查看google翻译的请求得到 3 textlen:请求的译文长度 ...

  4. python爬取地图地址_Python爬取百度地图poi数据 !

    锵锵锵,我来啦.10天过的好快呀,4月份都已经过了三分之一,我的体重还居高不下,qwq.今天给大家分享python爬取百度地图小区的数据,希望大家看后,可以尝试自己编写爬取自己所在市的中学,公园,银行 ...

  5. 利用python的scrapy框架爬取google搜索结果页面内容

    scrapy google search 实验目的 爬虫实习的项目1,利用python的scrapy框架爬取google搜索结果页面内容. https://github.com/1012598167/ ...

  6. python爬取高德poi数据_Python突破高德API限制完全爬取POI兴趣点数据

    一.背景 爬取POI数据,基本上是个老生常谈的话题了,现在市面上随处可见各路大神制作的获取POI数据的工具,但是当我将从高德地图中实际获取的POI数据与工具爬取的POI数据进行对比之后发现,市面上流行 ...

  7. python爬取电影评分_用Python爬取猫眼上的top100评分电影

    代码如下: # 注意encoding = 'utf-8'和ensure_ascii = False,不写的话不能输出汉字 import requests from requests.exception ...

  8. python爬取网页公开数据_如何用Python爬取网页数据

    使用Python爬取网页数据的方法: 一.利用webbrowser.open()打开一个网站:>>> import webbrowser >>> webbrowse ...

  9. 编程python爬取网页数据教程_实例讲解Python爬取网页数据

    一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.f ...

最新文章

  1. opencv和halcon标定参数结果对比
  2. python建模仿真报告_Python|数学建模|排队论仿真
  3. ios realm 文件_iOS开发中使用Realm数据库
  4. [机器学习笔记]Note7--神经网络:学习
  5. C语言log日志管理-支持文件与终端输出
  6. Victor and World(spfa+状态压缩dp)
  7. Real Vision CEO预测以太坊币价将在今年年初达到2万美元
  8. sharepoint2007就地升级2010系列(三)升级系统
  9. 计算hashCode的常见方法
  10. Linux的dev目录被删除,详解Linux系统下的/dev目录
  11. 9大最佳工程施工项目管理系统
  12. Keras-YOLOV3-tensorflow制作训练自己的数据集
  13. Qt编写iphone信息读取(验机)工具
  14. 跟着团子学SAP:售前项目、项目前期管理思路
  15. python 典型相关分析_Canonical Correlation Analysis 典型相关分析
  16. JAVA编写代码实现如下需求:皮球(Ball)分为足球(Football)和排球(Volleyball),各种皮球的运动(play)方法各不相同。
  17. 使用Dash快速构建你的数据可视化前端
  18. nginx根据ip限流和突发流量配置解释
  19. 【视频会议系列】亿联视频会议产品矩阵简介
  20. Raket分析(一)

热门文章

  1. Mybatis最入门---分页查询(逻辑分页与SQL语句分页)
  2. “当前不会命中断点。还没有为该文档加载任何符号“解决方案
  3. 机器学习模型的评价指标和方法(附代码)
  4. pikachu Over permission 越权(皮卡丘漏洞平台通关系列)
  5. 二分查找算法(随机, 最左, 最右)
  6. Python笔试练习题
  7. 【C++】结构体嵌套结构体
  8. LVS均衡负载(三) LVS后端服务健康状态检查
  9. 计算机组成原理实验一:全加器实验
  10. sql注入登陆(菜鸟级)