通过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 ...
随机推荐
- html的css选择器
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Flow中的Switch分析
A switch statement can complete normally iff at least one of the following is true: (1)The switch bl ...
- go语言接受者的选取
何时使用值类型 1.如果接受者是一个 map,func 或者 chan,使用值类型(因为它们本身就是引用类型).2.如果接受者是一个 slice,并且方法不执行 reslice 操作,也不重新分配内存 ...
- TemplateBinding和Binding的区别
定义 TemplateBinding是为了某个特定场景优化出来的数据绑定版本--需要把ControlTemplate里面的某个Property绑定到应用该ControlTemplate的控件的对应Pr ...
- ls命令显示的total你知道代表着什么吗?
今天我无意间在用ls命令的时候发现显示的内容里的total,这个total代表着什么,引起了我的疑惑. 接下来开始解开它的神秘面纱. total后面的数字是指当前目录下所有文件所占用的空间总和,它是怎 ...
- 面试题-----ICMP协议简介
ICMP协议简介 l ICMP网际控制报文协议,通过它可以知道故障的具体原因和位置. l 由于IP不是为可靠传输服务设计的,ICMP的目的主要是用于在TCP/IP网络中发送出错和控制消息. l ...
- C++中指针和引用、数组之间的区别
指针指向一块内存,它的内容是所指内存的地址:而引用则是某块内存的别名,引用初始化后不能改变指向.使用时,引用更加安全,指针更加灵活. 初始化.引用必须初始化,且初始化之后不能呢改变:指针可以不必初始化 ...
- 【LeetCode题解】141_环形链表
目录 141_环形链表 描述 解法一:哈希表 思路 Java 实现 Python 实现 解法二:双指针(龟兔算法) 思路 Java 实现 Python 实现 141_环形链表 描述 给定一个链表,判断 ...
- Hibernate框架 hilo 方式配置MySQL 数据库的主键自增
hilo(高低位方式high low)是hibernate中最常用的一种生成方式,需要一张额外的表保存hi的值.保存hi值的表至少有一条记录(只与第一条记录有关),否则会出现错误.可以跨数据库. 创建 ...
- [CQOI 2018]异或序列&[Codeforces 617E]XOR and Favorite Number
Description 题库链接1 题库链接2 已知一个长度为 \(n\) 的整数数列 \(a_1,a_2,\cdots,a_n\) ,给定查询参数 \(l,r\) ,问在 \([l,r]\) 区间内 ...