r curl curl_download не добавляется - PullRequest
2 голосов
/ 12 марта 2020

Я пытаюсь взять набор dois, и веб-сайт do c .org возвращает информацию в формате .bib. Предполагается, что приведенный ниже код сделает это и решительно добавит каждый новый результат в файл .bib. mode = a - это то, что я понимаю, будет добавлять, но это не так. Последняя строка кода распечатывает содержимое oufFile и содержит только последние результаты .bib.

Что нужно изменить, чтобы сделать эту работу.

library(curl)
outFile <- tempfile(fileext = ".bib")
url1 <- "https://doi.org/10.1016/j.tvjl.2017.12.021"
url2 <- "https://doi.org/10.1016/j.yqres.2013.10.005"
  h <- new_handle()
    handle_setheaders(h, "accept" = "application/x-bibtex")

curl_download(url1, destfile = outFile, handle = h, mode = "a")
curl_download(url2, destfile = outFile, handle = h, mode = "a")
read_delim(outFile, delim = "\n")

1 Ответ

1 голос
/ 12 марта 2020

Это не работает для меня также с curl_download(). В качестве альтернативы вы можете загрузить с помощью curl() и использовать write() с append = TRUE.

Вот решение для этого, которое легко можно использовать для любого количества URL-адресов, которые вы хотите загрузить из bibtex с , Вы можете выполнить это после своей строки 7.

library(dplyr)
library(purrr)
urls <- list(url1, url2)
walk(urls, ~ {
  curl(., handle = h) %>%
    readLines(warn = FALSE) %>%
    write(file = outFile, append = TRUE)
})

library(readr)
read_delim(outFile, delim = "\n")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...