Я пытаюсь создать скрипт, который позволит мне загружать все статьи в формате pdf для определенного журнала, используя CrossRefApi в python.Оно работает.но у меня, похоже, есть проблема с интервалом / лимитом лимита скорости, поскольку я получаю много файлов, в которых говорится, что я превысил свою квоту.Но я не понимаю, как это работает.Сценарий, который я использую, выглядит следующим образом:
import requests
from crossref.restful import Journals, Etiquette
def main():
headers = {"CR-Clickthrough-Client-Token": "XXXXXXXXXXXXXXXXXXX", 'X-Rate-Limit-Interval': '10s', 'X-Rate-Limit-Limit': '50'}
my_etiquette = Etiquette('jEFF analysis', '0.1', 'n/a', 's.h.young@brighton.ac.uk') # edit this to be your details
journals = Journals(etiquette=my_etiquette)
jeff = journals.query("Ecology of Freshwater Fish")
issns = {issn for journal in jeff for issn in journal["ISSN"]}
i = 1
for issn in issns:
for article in journals.works(issn).filter(has_full_text='true'):
res = requests.get(article["link"][0]["URL"], headers=headers)
filename = "out/%d_out.pdf" % i
with open(filename, "w") as f:
f.write(res.content)
i+=1
if __name__ == "__main__":
main()
Я пробовал интервалы ограничения скорости до 15 минут ('15 м'), но это фактически приводит к сообщению о превышении квоты для первых 100 или около того файлов.,Я понял, что интервал ограничения скорости - это время, в которое API будет запрашиваться, поэтому от 2 с (предельный интервал) до 50 (предельное ограничение) будет 50 запросов в 2 с.Может я не прав.Если кто-нибудь может помочь мне понять, как это должно работать, я был бы очень признателен.