Для багатьох API (більшість, що я бачив) растелімітація - це функція вашого ключа API або OAuth. (Google, Twitter, NOAA, Yahoo, Facebook та ін.) Хороша новина - вам не доведеться підробляти свій IP-адресу, вам потрібно просто поміняти облікові дані, оскільки вони потрапляють на межу ставок.
Тут трохи безсоромної самореклами, але я написав пакет python спеціально для вирішення цієї проблеми.
https://github.com/rawkintrevo/angemilner
https://pypi.python.org/pypi/angemilner/0.2.0
Для цього потрібен демон mongodb, і в основному ви створюєте сторінку для кожного з своїх клавіш. Таким чином, у вас є 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)
Потім, коли ви запускаєте скребок, наприклад, NOIA api:
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, оскільки більшість вискоблювань робиться в python (більшість моїх скребків). Його можна було легко перенести.
Ось як можна технічно обійти обмеження ставок. Етично ...
UPDATE У цьому прикладі використовується Google Places API тут