使用R下载PDF文件的问题

18
我想从互联网下载一个PDF文件并保存到本地硬盘。下载后,PDF输出文件有很多空白页。我应该怎么做才能修复它?
例子:
require(XML)
url <- ('http://cran.r-project.org/doc/manuals/R-intro.pdf')
download.file(url, 'introductionToR.pdf')

提前感谢您。


2
我复制并粘贴了你的代码,得到了应该有的109页文档。也许是你的PDF阅读器出了问题? - vaettchen
对我来说运行良好。(R 2.14.1,Linux--您能发布sessionInfo()的结果吗?这似乎很可能是查看器或其他操作系统问题,因为这是相当基本的功能...)顺便说一句,您不需要使用XML包--download.file是基础R的一部分。 - Ben Bolker
1
PS. 我猜你在使用Windows系统:?download.file说:“编写用于下载二进制文件的代码必须使用‘mode =“wb”’,但由文本传输引起的问题只会在Windows上出现。” - Ben Bolker
我遇到了与OP相同的问题。下载的PDF文件会损坏。该死的“wb”参数解决了这个问题。 - userJT
2个回答

49
尝试使用wb模式,像这样:download.file(url, 'introductionToR.pdf', mode="wb")。对我来说,它是有效的。

1
这个答案在Win操作系统上为我节省了大量的工作! - userJT
5
为了添加解释,mode="wb"告诉函数将文件视为二进制而不是文本。 - Matt

-1

您可以使用tabulizer包下载PDF文件并将表格导出为data.frame格式。

https://ropensci.org/tutorials/tabulizer_tutorial.html

install.packages("devtools")
# on 64-bit Windows
ghit::install_github(c("ropenscilabs/tabulizerjars", "ropenscilabs/tabulizer"), INSTALL_opts = "--no-multiarch")
# elsewhere
ghit::install_github(c("ropenscilabs/tabulizerjars", "ropenscilabs/tabulizer"))

library(tabulizer)

f2 <- "https://github.com/leeper/tabulizer/raw/master/inst/examples/data.pdf"
extract_tables(f2, pages = 1, method = "data.frame")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接