Используйте wget
вместо этого. Вы можете установить его с помощью, brew install wget
если вы установили Homebrew или sudo port install wget
MacPorts.
Для загрузки файлов из списка каталогов используйте -r
(рекурсивно), -np
(не переходите по ссылкам на родительские каталоги), и -k
чтобы ссылки в загруженном HTML или CSS указывали на локальные файлы (credit @xaccrocheur).
wget -r -np -k http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/
Другие полезные опции:
-nd
(без каталогов): загрузить все файлы в текущий каталог
-e robots.off
: игнорировать файлы robots.txt, не загружать файлы robots.txt
-A png,jpg
: принимать только файлы с расширениями png
илиjpg
-m
(зеркало): -r --timestamping --level inf --no-remove-listing
-nc
, --no-clobber
: Пропустить загрузку, если файлы существуют
wget -r -np -k http://your.website.com/specific/directory
, Хитрость заключается в том, чтобы использовать-k
для преобразования ссылки (изображения и т. Д.) Для локального просмотра.brew
иport
не работает для меня, чтобы установить wget. Что я должен делать?-k
не всегда работает. Например, если у вас есть две ссылки, указывающие на один и тот же файл на веб-странице, которую вы пытаетесь захватить рекурсивно,wget
кажется, что конвертируется только ссылка первого экземпляра, но не второго.curl
может читать только отдельные файлы веб-страниц, куча строк, которые вы получили, на самом деле является индексом каталога (который вы также видите в своем браузере, если переходите по этому URL-адресу). Чтобы использоватьcurl
и некоторые магические инструменты Unix, чтобы получить файлы, вы можете использовать что-то вродекоторый получит все файлы в текущем каталоге.
Для более сложных потребностей (включая получение нескольких файлов с сайта с папками / каталогами)
wget
(как уже предлагалось в другом ответе) это лучший вариант.источник
xmllint --html --xpath '//a/@href'
вероятно лучше парсер чемgrep
.Ссылка: http://blog.incognitech.in/download-files-from-apache-server-listing-directory/
Вы можете использовать следующую команду:
Пояснения к каждому варианту
wget
: Простая команда, чтобы сделать запрос CURL и загрузить удаленные файлы на наш локальный компьютер.--execute="robots = off"
: Это будет игнорировать файл robots.txt при сканировании страниц. Это полезно, если вы не получаете все файлы.--mirror
: Эта опция в основном будет отражать структуру каталогов для данного URL. Это сокращение,-N -r -l inf --no-remove-listing
которое означает:-N
: не восстанавливать файлы, если они не новее локальных-r
: указать рекурсивную загрузку-l inf
: максимальная глубина рекурсии (inf или 0 для бесконечного)--no-remove-listing
: не удаляйте файлы .listing--convert-links
: сделать ссылки в загруженном HTML или CSS указывать на локальные файлы--no-parent
: не подниматься в родительский каталог--wait=5
: подождите 5 секунд между поисками. Чтобы мы не трогали сервер.<website-url>
Это URL-адрес веб-сайта, с которого можно скачивать файлы.Счастливого скачивания: smiley:
источник
Вы можете использовать httrack, доступный для Windows / MacOS и устанавливаемый через Homebrew.
источник
Для тех из нас, кто предпочел бы использовать приложение с графическим интерфейсом, есть недорогая условно-бесплатная программа DeepVacuum для Mac OS X , которая реализуется
wget
в удобной для пользователя форме со списком предустановок, которые могут обрабатывать часто необходимые задачи. Вы также можете сохранить свои собственные конфигурации в качестве пресетов.источник