Как уменьшить количество URL-запросов в секунду в пакете RISmed R? - PullRequest
0 голосов
/ 15 марта 2020

В настоящее время я использую R-пакеты RISmed и bibliometrix для анализа данных публикации.

Вот мой код:

library(bibliometrix) 
library(RISmed)

search_topic <-  "(((Dental Health Services[MESH]) OR (Dentistry[MESH] OR Dentists[MESH)) AND Research[MESH]) AND Research[MESH] AND (Computers[MESH] OR Medical Informatics[MESH] OR Information Technology[MESH]) "
search_query <- EUtilsSummary(search_topic, retmax=200, mindate=2014, maxdate=2020)
summary(search_query)
D <- EUtilsGet(search_query)
M <- pubmed2df(D)

Все отлично работает, но когда я запускаю последнюю строку, я получаю сообщение об ошибке:

In readLines(the_url) :
  cannot open URL 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?retmode=xml&dbfrom=pubmed&id=31173232&cmd=neighbor': HTTP status was '429 Unknown Error'

Это говорит в документация для функции EUtilsGet, которую пользователи могут публиковать не более 3 раз в секунду:

Чтобы не перегружать серверы E-Utility, NCBI рекомендует пользователям отправлять не более трех запросов URL в секунду. и ограничить большие рабочие места либо в выходные дни, либо с 9:00 вечера до 5:00 утра по восточному времени в будние дни. Несоблюдение этой политики может привести к блокировке доступа IP-адреса к NCBI.

После просмотра этой публикации также стало ясно, что я могу исправить решение путем перезапуска R и обновления пакета (оба из которых не имели никакого эффекта), или путем изменения кода для увеличения времени между запросами.

Как можно увеличить время между запросами, поскольку в данном случае это кажется мне единственным вариантом? Если есть какие-либо другие альтернативные решения, они также будут оценены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...