Есть онлайн-каталог HTTP, к которому у меня есть доступ. Я попытался загрузить все подкаталоги и файлы через wget
. Но проблема в том, что при wget
загрузке подкаталогов он загружает index.html
файл, который содержит список файлов в этом каталоге, без загрузки самих файлов.
Есть ли способ загрузить подкаталоги и файлы без ограничения глубины (как будто каталог, который я хочу скачать, является просто папкой, которую я хочу скопировать на мой компьютер).
-R
как,-R css
чтобы исключить все файлы CSS, или использовать,-A
как,-A pdf
чтобы только загрузить файлы PDF.When downloading from Internet servers, consider using the ‘-w’ option to introduce a delay between accesses to the server. The download will take a while longer, but the server administrator will not be alarmed by your rudeness.
robots.txt
каталоге есть файл, запрещающий загрузку файлов, это не сработает. В этом случае вам нужно добавить-e robots=off
. См. Unix.stackexchange.com/a/252564/10312Я смог заставить это работать благодаря этому посту, использующему VisualWGet . Это отлично сработало для меня. Важной частью является проверка
-recursive
флага (см. Изображение).Также установлено, что
-no-parent
флаг важен, иначе он попытается загрузить все.источник
--no-parent
делать?Из
man wget
'-r' '--recursive' Включить рекурсивное извлечение. См. Рекурсивная загрузка, для более подробной информации. Максимальная глубина по умолчанию - 5.
'-np' '--no-parent' Никогда не подниматься в родительский каталог при рекурсивном извлечении. Это полезный параметр, поскольку он гарантирует, что будут загружены только файлы ниже определенной иерархии. См. Ограничения на основе каталога, для получения более подробной информации.
'-nH' '--no-host-directoryies' Отключить создание каталогов с префиксом хоста. По умолчанию вызов Wget с помощью '-r http://fly.srk.fer.hr/ ' создаст структуру каталогов, начинающуюся с fly.srk.fer.hr/. Эта опция отключает такое поведение.
'--cut-dirs = number' Игнорировать номера компонентов каталога. Это полезно для получения детального контроля над каталогом, в котором будет сохранен рекурсивный поиск.
Взять, к примеру, каталог по адресу « ftp://ftp.xemacs.org/pub/xemacs/ ». Если вы получите его с помощью '-r', он будет сохранен локально в ftp.xemacs.org/pub/xemacs/. Хотя опция '-nH' может удалить часть ftp.xemacs.org/, вы все еще застряли с pub / xemacs. Вот где «--cut-dirs» пригодится; это заставляет Wget не «видеть» количество удаленных компонентов каталога. Вот несколько примеров того, как работает опция --cut-dirs.
Без параметров -> ftp.xemacs.org/pub/xemacs/ -nH -> pub / xemacs / -nH --cut-dirs = 1 -> xemacs / -nH --cut-dirs = 2 ->.
--cut-dirs = 1 -> ftp.xemacs.org/xemacs/ ... Если вы просто хотите избавиться от структуры каталогов, эта опция аналогична комбинации '-nd' и '-P'. Однако, в отличие от '-nd', --cut-dirs 'не проигрывает с подкаталогами - например, с' -nH --cut-dirs = 1 ', подкаталог beta / / будет помещен в xemacs / beta, так как можно было бы ожидать.
источник
wget
это бесценный ресурс и кое-что я использую сам. Однако иногда в адресе присутствуют символы, которыеwget
идентифицируются как синтаксические ошибки. Я уверен, что есть решение для этого, но поскольку этот вопрос не задавал конкретно о том, чтоwget
я думал, я бы предложил альтернативу для тех людей, которые, несомненно, наткнуться на эту страницу, ища быстрое решение без необходимости обучения.Есть несколько расширений браузера, которые могут сделать это, но большинство требуют установки менеджеров загрузки, которые не всегда бесплатны, имеют тенденцию быть раздражением и использовать много ресурсов. Вот тот, который не имеет ни одного из этих недостатков:
«Download Master» - это расширение для Google Chrome, которое отлично подходит для загрузки из каталогов. Вы можете выбрать, какие типы файлов загружать, или загрузить весь каталог.
https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce
Чтобы получить актуальный список функций и другую информацию, посетите страницу проекта в блоге разработчика:
http://monadownloadmaster.blogspot.com/
источник
вы можете использовать lftp, швейцарский армейский нож для скачивания, если у вас есть большие файлы, которые вы можете добавить
--use-pget-n=10
в командуисточник
Вы можете использовать это дополнение Firefox для загрузки всех файлов в HTTP Directory.
https://addons.mozilla.org/en-US/firefox/addon/http-directory-downloader/
источник
Нет программного обеспечения или плагина требуется!
(можно использовать, только если вам не нужен рекурсивный режим)
Используйте букмарклет. Перетащите эту ссылку в закладки, затем отредактируйте и вставьте этот код:
и перейдите на страницу (откуда вы хотите скачать файлы), и нажмите эту закладку.
источник
Обычно wget работает таким образом, но у некоторых сайтов могут быть проблемы, и он может создавать слишком много ненужных HTML-файлов. Чтобы упростить эту работу и предотвратить ненужное создание файлов, я делюсь своим сценарием getwebfolder, который является первым сценарием linux, который я написал для себя. Этот скрипт загружает все содержимое веб-папки, введенной в качестве параметра.
Когда вы пытаетесь загрузить открытую веб-папку с помощью wget, которая содержит более одного файла, wget загружает файл с именем index.html. Этот файл содержит список файлов веб-папки. Мой скрипт преобразует имена файлов, записанные в файле index.html, в веб-адреса и загружает их явно с помощью wget.
Протестировано в Ubuntu 18.04 и Kali Linux. Может работать и в других дистрибутивах.
Использование :
извлечь файл getwebfolder из zip-файла, представленного ниже
chmod +x getwebfolder
(только в первый раз)./getwebfolder webfolder_URL
Такие как
./getwebfolder http://example.com/example_folder/
Ссылка на скачивание
Подробности в блоге
источник