Завантаження файлів за допомогою wget


15

Я намагаюся завантажити файли з цього веб-сайту .

URL-адреса: 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-сайту?

Відповіді:


22

Я думаю, що ваш ?інтерпретується оболонкою (Виправлення vinc17: скоріше, це &інтерпретується).

Просто спробуйте прості цитати навколо вашої URL-адреси:

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безпосередньо.


Він завантажується, але це навіть не каталог. Якщо ви подивитесь на посилання ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE48191 , ви можете побачити, що існує декілька файлів .gz. Я досі не можу отримати доступ до них ??
користувач3138373

Я припускаю, що ОП використовує оболонку, яка ігнорує ?як підстановку, оскільки нічого не відповідає. Основна проблема полягає в тому, що &це запустить частину, яка передує (таким чином, з неповною URL-адресою) у фоновому режимі. Але рішення те саме: цитувати URL.
vinc17

Дякую вам тердон та vinc за редагування / виправлення. @ user3138373: Я не можу знайти ваші .gz файли на наданих посиланнях. Чи можете ви скажіть ще раз, яку URL-адресу ви використовуєте для їх перегляду та доступу?
Qeole

1
@ user3138373 Завантажуваний файл - це архів ( .tarфайл), який містить .gz файли. Після завантаження запустіть, tar xvf GSE4819.tarщоб розширити архів і отримати доступ до файлів.
тердон

3

Ще один спосіб, який, можливо, спрацює, використовуючи цю команду:

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

-OКоманда буде вказати ім'я для завантаження в.

Звичайно, ваша початкова проблема полягає в тому, що "&" інтерпретували оболонку, оточуючи URL-адресу з подвійними лапки, виправляє проблему.


2
-O Параметр використовується для визначення імені файлу, в який зберігаються завантажені дані. Він не має випадків щодо завантажених даних (можливо, це ви мали на увазі, але я вважав це незрозумілим).
Qeole

Так вибачте, я
виправлю

Я не впевнений, чому це було знято.
ryekayo

3
Я не подав заявки, але це, мабуть, тому, що ваше рішення не виправляє проблему: &інтерпретується оболонкою, і завантаження .tarфайлу не вдасться.
Qeole

0

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

Це повинно отримати вам файл, який ви хочете завантажити в поточний каталог, в якому ви перебуваєте.


wget: missing URLце те, що wgetвідповідає на це, тому що вам не вистачає аргументу на -O. Крім того, я думаю, що це, мабуть, не вирішує проблему ОП.
Целада

Оскільки URL-адреса містить &, ця відповідь не працює, якщо ви не додасте ""чи ''навколо неї.
Аарон Франке

0

Від $ 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>

Так що потрібно робити

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

Зауважте "s" після http. Я сам спробував це, і це спрацювало чудово.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.