Pobieranie plików za pomocą wget


Odpowiedzi:


22

Myślę, że twoja ?interpretacja jest interpretowana przez powłokę (Korekta przez vinc17: bardziej prawdopodobne jest to, że &jest interpretowana).

Wypróbuj proste cytaty wokół adresu URL:

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

Zauważ, że żądany plik jest .tarplikiem, ale powyższe polecenie zapisze go jako index.html?acc=GSE48191&format=file. Aby mieć poprawną nazwę, możesz zmienić nazwę na .tar:

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

Lub możesz podać nazwę jako opcję wget:

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

Powyższe polecenie zapisze pobrany plik jako GSE48191.tar bezpośrednio.


Zostaje pobrany, ale nie jest to nawet katalog. Jeśli spojrzysz na link ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE48191 , możesz zauważyć, że istnieje wiele plików .gz. Nadal nie mogę uzyskać do nich dostępu?
— user3138373,

Podejrzewam, że OP używa powłoki, która ignoruje ?jako symbol wieloznaczny, ponieważ nic nie pasuje. Główny problem polega na &tym, że uruchomi w tle część, która poprzedza (a więc z niekompletnym adresem URL). Ale rozwiązanie jest takie samo: zacytować adres URL.
— vinc17

Dzięki tobie terdon i vinc za edycję / poprawki. @ user3138373: Nie mogę znaleźć twoich plików .gz na podanych linkach, czy możesz ponownie powiedzieć, jakiego adresu URL używasz, aby je zobaczyć / uzyskać do nich dostęp?
— Qeole

1
@ użytkownik3138373 pobrany plik jest archiwum ( .tarplikiem) zawierającym pliki .gz. Po pobraniu uruchom, tar xvf GSE4819.taraby rozwinąć archiwum i uzyskać dostęp do plików.
— terdon

3

Innym sposobem, który może działać, jest użycie tego polecenia:

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

-OPolecenie podać nazwę aby pobrać się.

Oczywiście twoim początkowym problemem jest to, że „&” był interpretowany przez powłokę, a otaczanie adresu URL podwójnymi cudzysłowami rozwiązuje problem.


2
-O Opcja służy do określenia nazwy pliku, w którym zapisywane są pobrane dane. Nie ma wpływu na pobrane dane (może o to ci chodziło, ale nie było to jasne).
— Qeole,

Tak przepraszam,
— dokonam

Nie jestem pewien, dlaczego to zostało odrzucone.
— ryekayo

3
Nie przegłosowałem, ale prawdopodobnie dlatego, że twoje rozwiązanie nie rozwiązuje problemu: &jest interpretowane przez powłokę, a pobieranie .tarpliku nie powiedzie się.
— Qeole,

0

wget -O „name-you-want-to-save-as.format” http://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file

To powinno dostarczyć ci plik, który chcesz pobrać do bieżącego katalogu, w którym się znajdujesz.


wget: missing URLco wgetodpowiada temu, ponieważ brakuje argumentu -O. Myślę też, że to prawdopodobnie nie rozwiązuje problemu PO.
— Celada,

Ponieważ adres URL zawiera &, ta odpowiedź nie działa, chyba że dodasz adres URL ""lub w jego ''pobliżu.
— Aaron Franke

0

Od $ 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>

Więc musisz to zrobić

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

Zwróć uwagę na „s” po http. Sam spróbowałem i zadziałało dobrze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.