使用 wget 下载文件

使用 wget 下载文件

我正在尝试从以下位置下载文件这个网站

网址是:http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file

当我使用这个命令时:

wget http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file 

我只得到index.html?acc=GSE48191某种二进制格式。

如何从此 HTTP 站点下载文件?

答案1

我认为你的?解释是由 shell 进行的(vinc17 的更正:更有可能的是,它是&被解释的)。

只需尝试在您的网址周围使用简单的引号即可:

wget 'http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file'

请注意,您请求的文件是一个.tar文件,但上述命令会将其另存为index.html?acc=GSE48191&format=file.要正确命名它,您可以将其重命名为.tar

mv 'index.html?acc=GSE48191&format=file' GSE4819.tar

或者您可以将名称作为选项提供wget

wget -O GSE48191.tar 'http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file'

上述命令将直接将下载的文件保存为GSE48191.tar.

答案2

另一种可能有效的方法是使用以下命令:

wget -O nameOfTar.tar "http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file"

-O命令将指定下载到的名称。

当然,您最初的问题是因为 shell 正在解释“&”,用双引号将 URL 括起来可以解决该问题。

答案3

这些答案都不适合我。

但是,您可以在 NCBI ftp 页面中找到 GSE* 文件夹:

ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE48nnn/GSE48191/suppl/

然后,您可以从该文件复制链接地址并执行简单的 wget:

wget ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE48nnn/GSE48191/suppl/GSE48191_RAW.tar

答案4

来自 $curl -Ghttp://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191">here</a>.</p>
</body></html>

所以你需要做

wget https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191

注意http后面的“s”。我自己尝试了一下,效果很好。

相关内容