我正在尝试从以下位置下载文件这个网站。
网址是: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”。我自己尝试了一下,效果很好。