我有一个关于使用的可能相当基本的问题download.file
R 中的函数使用wget
选项并使用一些 wget 额外选项,但我就是无法让它工作。
我想做的:下载一个网页的本地副本(实际上是几个网页,但目前的挑战是让它即使只有 1 个也能工作)。
挑战:我需要本地副本看起来与在线版本完全相同,这也意味着包含链接/图标等。我发现 wget 是一个很好的工具,我想指定一些额外的选项,例如作为--random wait
, -p
, -r
。我发现了一些关于此的非常有用的教程,但是它们都没有使用 R 中的额外选项,而是直接使用 wget 中的选项。
这是我为此编写的代码:
download.file('https://www.wikipedia.org/', destfile = "wikipage", method = "wget", extra = getOption("--random wait", "-r", "-p"))
这是行不通的。我怀疑“wget”方法和附加项的规范都存在问题。
任何人都可以帮忙,将不胜感激?
额外问题:我知道destfile
应该为下载的文档指定一个文件名,但是有什么方法可以通过保存所有下载文件的路径指定一个文件夹吗?
先感谢您!
最好的
卡罗琳
您可以直接在额外参数中指定多个选项,而无需getOption()
.
此外,您可以简单地将要保存下载文件的文件路径包含在destfile
.
download.file('https://www.wikipedia.org/', destfile = "mydirectory/wikipage.html", method = "wget", extra = "-r -p --random-wait")
但是,您会遇到一个问题,它会尝试将所有下载的项目保存到同一个文件中。destfile
.
请注意,有一个类似的问题 https://stackoverflow.com/q/33685087/1735215不久前(我现在才看到)。建议的解决方案是使用system()
代替download.file
运行 wget 命令。针对您的问题进行了调整:
setwd("./mydirectory")
system("wget http://www.wikipedia.org -p -k --random-wait")
编辑:另请注意,这两个命令仅适用于安装了 wget 的系统。在 Linux/BSD/Mac 上,要安装的软件包通常应称为 wget。在 Windows 上,wget 是(根据download.file() 帮助 http://stat.ethz.ch/R-manual/R-devel/library/utils/html/download.file.html)可从 gnuwin32 和 Cygwin 等软件包中获得。在这种情况下,system()
如果系统不知道 wget 可执行文件在哪里,命令可能仍然无法工作。在这种情况下,您可能需要指定 wget 可执行文件的绝对路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)