Fazendo Download de Arquivos Utilizando o wget

15

Estou tentando baixar arquivos deste site .

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

Quando eu uso este comando:

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

Eu recebo apenas o index.html?acc=GSE48191que é algum tipo de formato binário.

Como posso baixar os arquivos deste site HTTP?

user3138373
fonte

Respostas:

22

Eu acho que você ?é interpretado pelo shell (Correção de vinc17: provavelmente, é o &que é interpretado).

Basta tentar com aspas simples em torno do seu URL:

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

Observe que o arquivo que você está solicitando é um .tararquivo, mas o comando acima o salvará como index.html?acc=GSE48191&format=file. Para que ele seja nomeado corretamente, você pode renomeá-lo para .tar:

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

Ou você pode dar o nome como uma opção para wget:

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

O comando acima salvará o arquivo baixado como GSE48191.tardiretamente.

Qeole
fonte
É baixado, mas nem sequer é um diretório. Se você olhar o link ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE48191 , poderá ver vários arquivos .gz. Ainda não consigo acessá-los?
User3138373
Suponho que o OP use um shell que ignore ?como curinga, já que nada corresponde. O principal problema é &: isso executará a parte que antecede (portanto, com uma URL incompleta) em segundo plano. Mas a solução é a mesma: citar o URL.
vinc17
Obrigado a você terdon e vinc pelas edições / correções. @ user3138373: Não consigo encontrar seus arquivos .gz nos links fornecidos. Você poderia dizer novamente qual URL você usa para vê-los / acessá-los?
Qeole 22/07
1
@ user3138373 o arquivo baixado é um archive ( .tararquivo) que contém os arquivos .gz. Depois de baixá-lo, execute tar xvf GSE4819.tarpara expandir o arquivo e acessar os arquivos.
terdon
3

Outra maneira que pode funcionar é usando este comando:

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

O -Ocomando especificará o nome para o qual fazer o download.

Obviamente, seu problema inicial é porque o "&" estava sendo interpretado pelo shell, ao redor do URL entre aspas duplas corrige o problema.

ryekayo
fonte
2
-O A opção é usada para especificar o nome do arquivo no qual os dados descarregados são salvos. Não tem incidência nos dados baixados (talvez seja isso que você quis dizer, mas achei claro).
Qeole 22/07
Sim desculpe, eu vou fazer a minha correção
ryekayo
Não sei por que isso foi prejudicado.
ryekayo
3
Eu não reduzi o voto, mas isso é provavelmente porque sua solução não resolve o problema: &é interpretada pelo shell e o download do .tararquivo falhará.
Qeole
0

wget -O "nome que você deseja salvar como.format" http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file

Isso deve levar o arquivo que você deseja baixar para o diretório atual em que está.

Samman Bikram Thapa
fonte
wget: missing URLé o que wgetresponde a isso, porque você está perdendo o argumento para -O. Além disso, acho que isso provavelmente não resolve o problema do OP de qualquer maneira.
Celada
Como o URL contém &, essa resposta não funcionará, a menos que você adicione ""ou ''contorne o URL.
Aaron Franke
0

De $ curl -G http://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>

Então você precisa fazer

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

Observe o "s" após http. Eu mesmo tentei e funcionou muito bem.

A letra M
fonte