[英]Hitting rate limit for google maps API, But don't know why
我寫了一個腳本來向Google Maps的API發送地址並收回Lat和Lng。 但是,我收到的錯誤消息是,我在20次左右的查詢后超出了Google的速率限制。 有什么我不考慮的嗎?
我很感激任何幫助。 我非常擅長使用API,所以更好地理解為什么我達到速率限制會非常有幫助。
從名為Location的csv文件中讀取地址后,下面是我的相關代碼。
for row in locations:
address = 'XXX, New Haven, CT'
first = re.search('^(.*),',row[0])
address = re.sub('XXX',first.group(), address)
lat, lng = gmaps.address_to_latlng(address)
我的錯誤信息如下。
Traceback (most recent call last):
File "<input>", line 5, in <module>
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/googlemaps-1.
0.2-py2.7.egg/googlemaps.py", line 310, in address_to_latlng
return tuple(self.geocode(address)['Placemark'][0]['Point']['coordinates'][1
::-1])
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/googlemaps-1.
0.2-py2.7.egg/googlemaps.py", line 262, in geocode
raise GoogleMapsError(status_code, url, response)
GoogleMapsError: Error 620: G_GEO_TOO_MANY_QUERIES
每個gmaps.address_to_latlng
呼叫都會向Google服務器發送一個請求,您只能進行有限數量的請求。
Google關於使用限制的文檔:
使用Google地理編碼API每天的查詢限制為2,500個地理定位請求。 [...]此外,我們強制執行請求速率限制以防止濫用服務。
給定密鑰在24小時內超過了請求限制,或者在一段時間內提交了太多請求。 如果您要並行或緊密循環發送多個請求,請使用計時器或暫停代碼以確保不會過快地發送請求。
那么,做他們告訴你的事情:
import time
# And then in the loop, pause:
time.sleep(1)
將“1”調整到適當的秒數,這樣就不會耗盡允許的請求。
我讓我意識到,大多數人(像我一樣)省略了谷歌地圖api中關於“請求率限制”的部分,該部分與“每日限制頁數”不同。
所以'請求率限制'是每秒10個請求。
因此,如果你顯示一個包含20個靜態地圖的頁面......並且最終用戶有一個快速的互聯網連接(也許你呢?)...
然后那些對谷歌地圖API的20個請求發生得更快,然后在1秒內...
因此,你打破他們的ryle,他們阻止圖像顯示。
這是我剛才在這里和那里閱讀之后的結論
祝好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.