많은 API (가장 많이 본 것)의 속도 제한은 API 키 또는 OAuth 자격 증명의 기능입니다. (Google, Twitter, NOAA, Yahoo, Facebook 등) 좋은 소식은 IP를 스푸핑 할 필요가 없으며 자격 증명이 속도 제한에 도달하면 스왑해야한다는 것입니다.
여기에 약간의 수치스러운 자체 프로모션이 있지만이 문제를 처리하기 위해 특별히 파이썬 패키지를 작성했습니다.
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)
그런 다음 스크레이퍼를 실행하면 NOAA 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())
대부분의 스크래핑은 파이썬 (대부분의 MY 스크래핑)으로 이루어지기 때문에 R에 이것을 쓰지 않았습니다. 쉽게 이식 할 수 있습니다.
이것이 기술적 으로 속도 제한을 극복 할 수있는 방법 입니다. 윤리적으로 ...
업데이트 예에서는 Google Places API를 사용 합니다.