下载的pdf文件的命名无效

时间:2019-02-11 08:18:15

标签: r pdf

下载许多(48)个pdf文件时,使用str_match(myurl, "UniqueID=(.+))命名失败。我看到下载正常,但名称不起作用,完成后,我只有一个名为“ NA”的文件。

我正在从联合国组织的数据库中下载许多PDF。一切正常,因为我看到所有文件都已下载。但是,所有文件命名都出错,最后我只有一个名为“ NA”的文件。

library(downloader)
library(stringr)
for (myurl in pdfscollect) {
    filename<-paste("collected/", str_match(myurl, "UniqueID=(.+)")[2], ".pdf", sep="")
    download(myurl, filename)
    Sys.sleep(2)
}

我希望所有pdf文件都具有唯一的名称,但是不会发生命名,最后只有一个文件带有“ NA”。

pdfscollect是包含所有链接的文件。例: pdfstest <-c(“ http://www.ilo.org/evalinfo/product/download.do;?type=document&id=8287”,“ http://www.ilo.org/evalinfo/product/download.do;?type=document&id=10523”,…。)

2 个答案:

答案 0 :(得分:1)

如果我理解正确(?),那么问题是

paste("collected/", str_match(myurl, "UniqueID=(.+)")[2]
当您期望文档ID时,

返回NA的向量:

[1] "8287"  "10523"

我建议改用类似以下的内容(它确实会获得预期的输出):

str_extract(pdfstest, "(?<=id=)\\d+")

在这里,我们使用正则表达式匹配向量中id=的第一个urls之后紧随其后的任意数字。

答案 1 :(得分:0)

感谢您的建议,@ sindri_baldur。最终结果是一样的,只是pdf文件的名称改变了。我现在知道也无法打开pdf文件。我认为部分问题是pdf链接是“ ..download.do ...”链接(ilo.org/evalinfo/product/download.do;?type=document&id=8287)。我想我应该以另一种方式收集这些pdf。