通过Places API Web Service获取兴趣点数据
实验将爬取新加坡地区的银行POI数据
数据库采用mongodb,请自行安装,同时申请google的key
直接上代码
#coding=utf-8
import urllib
import json
import requests
# import pymongo
import pymongo
import pymongo.database class PlacesTest():
def __init__(self):
self.key = 'your_key'
# self.client = googlemaps.Client(self.key)
self.location = '48.859294,2.347589'
self.type = 'bank'
self.language = 'zh-CN'
self.radius = 1600
self.baseUrl = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json'
mongoClient = pymongo.MongoClient('192.168.0.203',27017)
db = pymongo.database.Database(mongoClient,'googlePlace')
self.googlePlace_Coll = pymongo.collection.Collection(db,'bank')
def getHtml(self,url):
page = urllib.urlopen(url)
html = page.read()
return html
def test_places_nearby_search(self):
payload = {
'key': self.key,
'location': self.location,
'type': self.type,
'radius': self.radius,
'language': self.language,
}
headers = {'User-Agent':"Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0",
"Accept": "image/png,image/*;q=0.8,*/*;q=0.5"
}
# url = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json'
r = requests.get(self.baseUrl, timeout=200, headers=headers, params=payload)
data=r.json()
# html = self.getHtml()
# # print html
# data = json.loads(html)
print r.url,data['results'].__len__()
for row in data['results']:
old = self.googlePlace_Coll.find_one({'id':row['id']})
# print old
if old==None:
self.googlePlace_Coll.insert_one(row)
# print data['results'] latitude=1.2392984960090898
longitude=103.61274719238281
_latitude=1.4644553893995902
_longitude=104.00619506835939
i=0
PlacesTest=PlacesTest() while (latitude<=_latitude):
while (longitude<=_longitude):
# d=getFlatternDistance(latitude,longitude+1,latitude,longitude);
# L.circle([latitude,longitude+0.5], {radius: d/2,color: "#ff7800"}).addTo(map);
PlacesTest.location=str(latitude)+','+str(longitude)
PlacesTest.test_places_nearby_search()
i=i+1
longitude=longitude + 0.02
longitude=103.61274719238281
# console.warn(d);
latitude=latitude + 0.02
# // console.warn(latitude,longitude);
# // continue;
使用限制:
Google Places API Web Service 强制执行每 24 小时 **1,000 次免费请求的默认限制,该默认限制由计算客户端和服务器端请求数量之和得出。
如果超过初始限制,应用将会开始出现故障。 您可以在 Google API Console 上启用收费来验证自己的身份,免费将此限制增加到每 24 小时 150,000 次请求。
验证身份时要求提供信用卡。 要求信用卡纯粹是为了验证您的身份。 不会由于您使用 Google Places API Web Service 而通过您的信用卡收取费用。
免费使用的最大限制为每 24 小时 150,000 次请求。 如果您的应用超过该限值,将会再次开始出现故障。 购买 Google Maps APIs Premium Plan 许可证可获得每 24 小时超过 150,000 次请求的限值。
如果您预期请求次数会超过默认的允许请求次数,请提前采取措施增大限值。
Google Places API Web Service 也有使用率限制。 无论有多少位用户共享同一项目,均以用户会话为单位施加使用率限制。
注:文本搜索服务在计算请求次数时需要乘以 10 倍。 也就是说,您进行的每个“文本搜索”请求将按 10 次请求从配额中扣除。
如果您的 Google Maps APIs Premium Plan 购买合同中已包含 Google Places API Web Service,倍数可能不同。
通过Places API Web Service获取兴趣点数据的更多相关文章
- iOS开发网络篇之Web Service和XML数据解析
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主.捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...
- asp.net项目下的web service返回json数据问题
App_Code目录下放置WebService.cs文件,文件内容如: using System; using System.Collections.Generic; using System.Dat ...
- 采用web service传输超大数据
因为以前也没有做过相关的web service开发,对于Xfire也只是知道有这么一个框架.当然现在它已经变成apache基金会旗下的一个开源项目CXF.不过,现在依旧有很多公司还在用Xfire作we ...
- Fork 多进程 模拟并行访问web service获取响应时间差
#include <ros/ros.h> #include <iostream> #include <string> #include <cstring> ...
- [转]WEB页获取串口数据
本文转自:https://www.cnblogs.com/rockyhm/p/3434200.html 最近做一个B/S的项目,需要读取电子秤的值,之前一直没做过,也没有经验,于是在网上找到很多 大 ...
- WEB页获取串口数据
最近做一个B/S的项目,需要读取电子秤的值,之前一直没做过,也没有经验,于是在网上找到很多 大致分两种 使用ActiveX控件,JS调用MSCOMM32.dll的串口控件对串口进行控制 使用C#语言 ...
- Angular2 Service获取json数据
在Angular2框架下一般交互解析json是要用到Service的,其实除了Service还是很多的,今天先写个最简单的前后端数据交互 嗯~~ 首先我先在app包下直接创建Service 好了 这里 ...
- Exchange Web Service 获取邮件的附件并保存到本地的示例代码
private static void DownLoadMailAttachments(ExchangeService service, ItemId itemId) { EmailMessage m ...
- 翻译-使用Spring调用SOAP Web Service
原文链接: http://spring.io/guides/gs/consuming-web-service/ 调用SOAP web service 本指南将指导你使用Spring调用一个基于SOAP ...
随机推荐
- EF基础知识小记一
1.EF等ORM解决方案出现的原因 因为软件开发中分析和解决问题的方法已经接近成熟,然后关系型数据库却没有,很多年来,数据依然是保存在表行列这样的模式里,所以,在面相对象和高度标准化的数据库中产生了一 ...
- Sington单例模式(创建型模式)
一.使用Sington单例模式的动机(Motivation) 在软件系统中,经常有一些特殊的类,必须保证它们只有一个实例,才能保证它的逻辑正确性.以及良好的效率. 大多数类用的是常规的构造器,所以往往 ...
- java 中几种常用数据结构
Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类. 一.几个常用类的区别 1.A ...
- thinkphp 实现rabbitMq常驻进程消费队列
1,项目一级目录新建一个server文件 #!/usr/bin/env php <?php try { require __DIR__ . "/start.php"; } c ...
- Windows 8的语音识别
不多说,直接干货! 第一步:启动windows 语音识别窗口 第二步:设置windows 语音识别窗口 第三步:使用windows 语音识别窗口来输入文字 成功!!! 欢迎大家,加入我的微信公众号: ...
- centos 关闭selinux 临时关闭selinux 报错 setenforce: setenforce() failed
关闭selinux的方法有两种:临时关闭和永久关闭. 查看selinux的状态:estatus [root@--- ~]# sestatus SELinux status: enabled SELin ...
- Ethereum 源码分析之框架
accounts 实现了一个高等级的以太坊账户管理 bmt 二进制的默克尔树的实现 build 主要是编译和构建的一些脚本和配置 cmd ...
- SpringCloud源码解读
http://blog.didispace.com/Spring-Cloud%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
- 不用bootstrap,只用CSS创建网格布局
本文译自[http://j4n.co/blog/Creating-your-own-css-grid-system],英语好的,可直接查看原网页,不需要FQ. 翻译拿不准的地方会有英文原文,方便大家理 ...
- UOJ #357. 【JOI2017春季合宿】Sparklers
Description 小S和小M去看花火大会. 一共有 n 个人按顺序排成一排,每个人手上有一个仅能被点燃一次的烟花.最开始时第 K 个人手上的烟花是点燃的. 烟花最多能燃烧 T 时间.每当两个人的 ...