通过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 ...
随机推荐
- CentOS 安装Scrapy
本文python版本是python3.5.3,关于升级python和安装pip请到:http://www.cnblogs.com/technologylife/p/6242115.html 安装相关包 ...
- BugFree3.0.4Linux环境安装指南
bugfree安装的前提是配置LAMP(apache+mysql+php),我安装的linux系统是centos6.0 一.安装Apache服务器 1.安装apache yum install htt ...
- css自动适应宽度
.itemContent { background-color:#F0F0F0; padding:3px 11px 11px 11px; text-align:justify; text-justif ...
- 09 - JavaSE之线程
线程 线程的基本概念 线程是一个程序里面不同的执行路径. 进程与线程的区别 每个进程都有独立的代码和数据空间(进程上下文),进程间的切换开销大. 线程可以看作轻量级的进程,同一类线程共享代码和数据空间 ...
- Java虚拟机(四):JVM类加载机制
1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构 ...
- sersync+rsync=实时异步备份
环境准备 服务器两台 rsync-server:192.168.1.8 (备份服务器) sersync-node1:192.168.1.9 (需要备份的服务器) 系统 CentOS7.4 关闭防火墙 ...
- UOJ #356. 【JOI2017春季合宿】Port Facility
Description 小M有两个本质不同的栈. 无聊的小M找来了n个玩具.之后小M把这n个玩具随机顺序加入某一个栈或把他们弹出. 现在小M告诉你每个玩具的入栈和出栈时间,现在她想考考小S,有多少种方 ...
- mybatis使用拦截器显示sql,使用druid配置连接信息
1.显示出sql内容: 新建2个类:MybatisInterceptor :拦截sql,并获得输出sql内容 package com.cpp.core.filter; import java.text ...
- 记录一次读取memcache缓存的优化
我们是用mvc做web,大部分数据都用memcache做了缓存 有2台memcache缓存服务器 数据并不大. 某页面响应较慢,大概在4s左右. 页面本身很简单只是显示一个表单. 但是layout相对 ...
- .NET编译过程
总结一下.NET的编译过程, 一般的高级编程语言会把代码编译成机器码,也就是我们说的非托管代码,执行在编译它的电脑上. 而.NET编译代码的时候会把高级编程语言编译成中间语言 运行在CLR(公共语言运 ...