Per molte API (la maggior parte delle quali ho visto) la ratelimitazione è una funzione della chiave API o delle credenziali OAuth. (Google, Twitter, NOAA, Yahoo, Facebook, ecc.) La buona notizia è che non avrai bisogno di falsificare il tuo IP, devi solo scambiare le credenziali quando raggiungono il limite di velocità.
Un po 'di auto-promozione spudorata qui, ma ho scritto un pacchetto Python appositamente per gestire questo problema.
https://github.com/rawkintrevo/angemilner
https://pypi.python.org/pypi/angemilner/0.2.0
Richiede un demone mongodb e fondamentalmente crei una pagina per ognuna delle tue chiavi. Quindi hai 4 indirizzi email ciascuno con una chiave separata assegnata. Quando si carica la chiave, si specificano il numero massimo di chiamate al giorno e il tempo minimo tra gli usi.
Carica chiavi:
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)
Quindi, quando esegui il tuo raschietto, ad esempio l'API 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'})
diventa:
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']})
quindi se hai 5 chiavi, l.check_out_api_key
restituisce la chiave che ha il minor numero di usi e attende fino a quando non è trascorso abbastanza tempo per essere riutilizzata.
Infine, per vedere con che frequenza sono state utilizzate le chiavi / utilizzo rimanente disponibile:
pprint(l.summary())
Non ho scritto questo per R perché la maggior parte dei raschiamenti viene eseguita in Python (la maggior parte dei MIEI raschietti). Potrebbe essere facilmente trasferito.
Ecco come puoi tecnicamente aggirare la limitazione della frequenza. Eticamente ...
AGGIORNAMENTO L'esempio utilizza l'API di Google Places qui