Как использовать Wget для загрузки всех изображений в одну папку с URL-адреса?
Я использую wget для загрузки всех изображений с веб-сайта, и он работает нормально, но в нем хранится исходная иерархия сайта со всеми подпапками, поэтому изображения разбросаны по сторонам. Есть ли способ, чтобы он просто загружал все изображения в одну папку? Синтаксис, который я использую в данный момент:
wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
7 ответов
Попробуй это:
wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
Вот еще немного информации:
-nd
предотвращает создание иерархии каталогов (т.е. без каталогов).
-r
позволяет рекурсивный поиск. См. Рекурсивная загрузка для получения дополнительной информации.
-P
устанавливает префикс каталога, в который сохраняются все файлы и каталоги.
-A
устанавливает белый список для извлечения только определенных типов файлов. Строки и шаблоны принимаются, и оба могут быть использованы в списке через запятую (как видно выше). См. Типы файлов для получения дополнительной информации.
wget -nd -r -l 2 -A jpg,jpeg,png,gif http://t.co
-nd
: нет каталогов (сохранить все файлы в текущем каталоге;-P directory
меняет целевой каталог)-r -l 2
: рекурсивный уровень 2-A
: принятые расширения
wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off example.tumblr.com/page/{1..2}
-H
: span hosts (по умолчанию wget не загружает файлы из разных доменов или поддоменов)-p
: реквизиты страницы (включает ресурсы, такие как изображения на каждой странице)-e robots=off
: выполнить командуrobotos=off
как будто это было частью.wgetrc
файл. Это отключает исключение робота, что означает, что вы игнорируете robots.txt и метатеги робота (вы должны знать, с чем это связано, будьте осторожны).
Пример: получить все .jpg
файлы из примерного списка каталогов:
$ wget -nd -r -l 1 -A jpg http://example.com/listing/
Я написал сценарий, который решает эту проблему для нескольких веб-сайтов: https://github.com/eduardschaeli/wget-image-scraper
(Вырезает изображения из списка URL с помощью wget)
Попробуй это:
wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com
и ждать, пока он удалит всю дополнительную информацию
Согласно справочной странице флаг -P:
-P prefix --directory-prefix = prefix Установить префикс каталога в качестве префикса. Префикс каталога - это каталог, в который будут сохранены все остальные файлы и подкаталоги, т.е. верхняя часть дерева поиска. По умолчанию это. (текущий каталог).
Это означает, что он указывает только место назначения, но где сохранить дерево каталогов. Это не сводит дерево в один каталог. Как упоминалось ранее, флаг -nd это действительно делает.
@Jon в будущем было бы полезно описать, что делает флаг, чтобы мы понимали, как что-то работает.
Предлагаемые решения идеально подходят для загрузки изображений и, если вам достаточно сохранить все файлы в каталоге, который вы используете. Но если вы хотите сохранить все изображения в указанном каталоге без воспроизведения всего иерархического дерева сайта, попробуйте добавить "cut-dirs" в строку, предложенную Джоном.
wget -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.boia.de --cut-dirs=1 --cut-dirs=2 --cut-dirs=3
в этом случае cut-dirs будет мешать wget создавать подкаталоги до 3-го уровня глубины в иерархическом дереве веб-сайта, сохраняя все файлы в указанном вами каталоге. Вы можете добавить больше "cut-dirs" с более высокими числами, если Вы имеете дело с сайтами с глубокой структурой.
Утилита wget извлекает файлы из World Wide Web (WWW), используя широко используемые протоколы, такие как HTTP, HTTPS и FTP. Утилита Wget является свободно доступным пакетом, а лицензия находится под лицензией GNU GPL. Эта утилита может быть установлена на любую Unix-подобную операционную систему, включая Windows и MAC OS. Это неинтерактивный инструмент командной строки. Главная особенность Wget - это надежность. Он спроектирован таким образом, что работает в медленных или нестабильных сетевых подключениях. Wget автоматически начинает загрузку с того места, где он был прерван в случае проблем с сетью. Также скачивает файл рекурсивно. Это будет продолжаться до тех пор, пока файл не будет получен полностью.
Установить wget на Linux-машине sudo apt-get установить wget
Создайте папку, в которую вы хотите загружать файлы. судо макдир myimages cd myimages
Щелкните правой кнопкой мыши на веб-странице и, например, если вы хотите разместить изображение, щелкните правой кнопкой мыши на изображении и скопируйте местоположение изображения. Если есть несколько изображений, выполните следующие действия:
Если одновременно можно загрузить из Интернета 20 изображений, диапазон начинается с 0 до 19.
wget http://joindiaspora.com/img{0..19}.jpg