Как использовать 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

Другие вопросы по тегам