实验将爬取新加坡地区的银行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获取兴趣点数据的更多相关文章

  1. iOS开发网络篇之Web Service和XML数据解析

    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主.捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...

  2. asp.net项目下的web service返回json数据问题

    App_Code目录下放置WebService.cs文件,文件内容如: using System; using System.Collections.Generic; using System.Dat ...

  3. 采用web service传输超大数据

    因为以前也没有做过相关的web service开发,对于Xfire也只是知道有这么一个框架.当然现在它已经变成apache基金会旗下的一个开源项目CXF.不过,现在依旧有很多公司还在用Xfire作we ...

  4. Fork 多进程 模拟并行访问web service获取响应时间差

    #include <ros/ros.h> #include <iostream> #include <string> #include <cstring> ...

  5. [转]WEB页获取串口数据

    本文转自:https://www.cnblogs.com/rockyhm/p/3434200.html 最近做一个B/S的项目,需要读取电子秤的值,之前一直没做过,也没有经验,于是在网上找到很多  大 ...

  6. WEB页获取串口数据

    最近做一个B/S的项目,需要读取电子秤的值,之前一直没做过,也没有经验,于是在网上找到很多  大致分两种 使用ActiveX控件,JS调用MSCOMM32.dll的串口控件对串口进行控制 使用C#语言 ...

  7. Angular2 Service获取json数据

    在Angular2框架下一般交互解析json是要用到Service的,其实除了Service还是很多的,今天先写个最简单的前后端数据交互 嗯~~ 首先我先在app包下直接创建Service 好了 这里 ...

  8. Exchange Web Service 获取邮件的附件并保存到本地的示例代码

    private static void DownLoadMailAttachments(ExchangeService service, ItemId itemId) { EmailMessage m ...

  9. 翻译-使用Spring调用SOAP Web Service

    原文链接: http://spring.io/guides/gs/consuming-web-service/ 调用SOAP web service 本指南将指导你使用Spring调用一个基于SOAP ...

随机推荐

  1. [转] 使用 MVC 5 的 EF6 Code First 入门 系列

    译文:http://www.cnblogs.com/Bce-/category/573301.html 原文:http://www.asp.net/mvc/overview/getting-start ...

  2. SQL Function 自定义函数

    目录 产生背景(已经有了存储过程,为什么还要使用自定义函数) 发展历史 构成 使用方法 适用范围 注意事项 疑问   内容 产生背景(已经有了存储过程,为什么还要使用自定义函数) 与存储过程的区别(存 ...

  3. SQL中利用ROW_NUMBER()进行分页查询

    SELECT ContractName ,ContractNO, State,CreateDate FROM (SELECT ContractName ,ContractNO,CreateDate, ...

  4. springboot之约定大约配置

    前言 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样 ...

  5. UA 用户代理

    User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本.浏览器渲染引擎.浏览器语言.浏览器插件等.被广泛用来标识 ...

  6. 我用ASP.NET缓存之数据缓存

    [我的理解] Cache,是内置的对象集合.是全局的,类似于static Arraylist.它是线程安全的,添加或修改Cache中的项目时,不需要锁定或者解除Cache. 添加 Cache[Key] ...

  7. IDEA使用总结1-Github下载代码和上传代码到Git

    1. 首先你需要在IDEA中创建一个项目,创建完项目后使能版本管理插件 选择git后创建本地git仓库成功,提示如下 2.第二步 commit代码到 commit时会提示是否需要进行检查什么的 3.第 ...

  8. POJ1426(KB1-E 暴力搜索)

    Find The Multiple   Description Given a positive integer n, write a program to find out a nonzero mu ...

  9. 【学习笔记】--- 老男孩学Python,day7 python中is 和 == 的区别 encode decode

    is比较的是id(内存地址)是不是一样,==比较的是值是不是一样 Python中,万物皆对象!万物皆对象!万物皆对象!(很重要,重复3遍) 每个对象包含3个属性,id,type,value id就是对 ...

  10. java图形用户界面之列表框

    列表框通过Swing组件JList产生,其总是在屏幕上占据固定行数的空间.如果要得到列表框中被选中的元素,只需调用getSelectedValuesList(),它可以产生一个字符串数组,内容为被选中 ...