Проблема ограничения скорости Crossrefapi - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь создать скрипт, который позволит мне загружать все статьи в формате 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 с.Может я не прав.Если кто-нибудь может помочь мне понять, как это должно работать, я был бы очень признателен.

...