कई API के लिए (सबसे मैंने देखा है) ratelimiting आपके API कुंजी या OAuth क्रेडेंशियल्स का एक फ़ंक्शन है। (Google, Twitter, NOAA, Yahoo, Facebook, आदि) अच्छी खबर यह है कि आपको अपने आईपी को खराब करने की आवश्यकता नहीं होगी, आपको बस क्रेडेंशियल्स स्वैप करने की आवश्यकता है क्योंकि वे वहां दर सीमा पर पहुंचते हैं।
यहाँ थोड़ा बेशर्म आत्म प्रचार है लेकिन मैंने इस समस्या से निपटने के लिए विशेष रूप से एक अजगर पैकेज लिखा है।
https://github.com/rawkintrevo/angemilner
https://pypi.python.org/pypi/angemilner/0.2.0
इसके लिए एक मोंगोडब डेमॉन की आवश्यकता होती है और मूल रूप से आप अपनी प्रत्येक कुंजी के लिए एक पृष्ठ बनाते हैं। इसलिए आपके पास अलग-अलग कुंजी असाइन किए गए प्रत्येक के साथ 4 ईमेल पते हैं। जब आप कुंजी को लोड करते हैं तो आप प्रति दिन अधिकतम कॉल और उपयोग के बीच न्यूनतम समय निर्दिष्ट करते हैं।
लोड कुंजी:
from angemilner import APIKeyLibrarian
l= APIKeyLibrarian()
l.new_api_key("your_assigned_key1", 'noaa', 1000, .2)
l.new_api_key("your_assigned_key2", 'noaa', 1000, .2)
तब जब आप NOAA एपीआई के लिए अपने खुरचनी चलाते हैं:
url= 'http://www.ncdc.noaa.gov/cdo-web/api/v2/stations'
payload= { 'limit': 1000,
'datasetid': 'GHCND',
'startdate': '1999-01-01' }
r = requests.get(url, params=payload, headers= {'token': 'your_assigned_key'})
हो जाता है:
url= 'http://www.ncdc.noaa.gov/cdo-web/api/v2/stations'
payload= { 'limit': 1000,
'datasetid': 'GHCND',
'startdate': '1999-01-01' }
r = requests.get(url, params=payload, headers= {'token': l.check_out_api_key('noaa')['key']})
इसलिए यदि आपके पास 5 कुंजी हैं, तो l.check_out_api_key
वह कुंजी लौटाता है जिसमें कम से कम उपयोग होता है और तब तक इंतजार करता है जब तक कि पर्याप्त समय फिर से उपयोग करने के लिए समाप्त न हो जाए।
अंत में यह देखने के लिए कि आपकी कुंजियों का उपयोग कितनी बार किया गया है / शेष उपलब्ध उपलब्ध हैं:
pprint(l.summary())
मैंने इसे R के लिए नहीं लिखा क्योंकि ज्यादातर स्क्रैपिंग अजगर (MY स्क्रैपिंग में से अधिकांश) में की जाती है। इसे आसानी से पोर्ट किया जा सकता था।
Thats आप तकनीकी रूप से कैसे रेट लिमिटिंग के आसपास हो सकते हैं । नैतिक रूप से ...
अद्यतन उदाहरण यहाँ Google स्थल एपीआई का उपयोग करता है