สำหรับ API จำนวนมาก (ส่วนใหญ่ที่ฉันเคยเห็น) การให้คะแนนเป็นฟังก์ชันของคีย์ API หรือข้อมูลรับรอง OAuth (Google, Twitter, NOAA, Yahoo, Facebook, ฯลฯ ) ข่าวดีก็คือคุณไม่จำเป็นต้องปลอมแปลง IP ของคุณคุณเพียงแค่ต้องเปลี่ยนข้อมูลประจำตัวของพวกเขาเมื่อพวกเขาถึงขีด จำกัด อัตรา
การโปรโมตตัวเองที่ไร้ยางอายที่นี่ แต่ฉันเขียนแพคเกจหลามโดยเฉพาะสำหรับการจัดการปัญหานี้
https://github.com/rawkintrevo/angemilner
https://pypi.python.org/pypi/angemilner/0.2.0
มันต้องมี mongodb daemon และโดยทั่วไปคุณสร้างหน้าสำหรับแต่ละคีย์ของคุณ ดังนั้นคุณมีที่อยู่อีเมล 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())
ฉันไม่ได้เขียนสิ่งนี้สำหรับ R เพราะการขูดส่วนใหญ่ทำในไพ ธ อน (การขูดส่วนใหญ่ของฉัน) มันสามารถย้ายได้ง่าย
นั่นเป็นวิธีที่คุณจะได้รับอัตรา จำกัด ทางเทคนิค จริยธรรม ...
อัปเดตตัวอย่างใช้ Google สถานที่ API ที่นี่