Як використовувати Wget, щоб завантажити всі зображення в одну папку з URL-адреси?


133

Я використовую wget для завантаження всіх зображень з веб-сайту, і він працює чудово, але він зберігає оригінальну ієрархію сайту з усіма вкладеними папками, тому зображення є пунктирними навколо. Чи існує спосіб, щоб він просто завантажив усі зображення в одну папку? Синтаксис, який я зараз використовую:

wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Відповіді:


194

Спробуйте це:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Ось додаткова інформація:

-ndперешкоджає створенню ієрархії каталогів (тобто відсутні каталоги ).

-rдає можливість рекурсивного пошуку. Для отримання додаткової інформації див. Рекурсивне завантаження .

-P встановлює префікс каталогів, куди зберігаються всі файли та каталоги.

-Aвстановлює білий список для отримання лише певних типів файлів. Рядки та шаблони приймаються, і обидва можуть використовуватися у списку, розділеному комами (як показано вище). Додаткову інформацію див. У розділі Типи файлів .


5
Це насправді не працювало для мене. Моє збереження було "". і він скопіював там всю ієрархію веб-сайтів.
Buttle Butkus

2
@ButtleButkus Це здається, що вам потрібно повозитися трохи більше з -Aопцією прийняття , перегляньте документацію Wget про типи файлів . Крім того, якщо ви завантажуєте в поточний каталог, ви можете видалити -Pопцію префіксу каталогу . Якщо ви завантажуєте один тип файлу, наприклад, лише jpg, використовуйте щось подібне wget -r -A.jpg http://www.domain.com. Подивіться на вдосконалені приклади, які надає документація Wget.
Джон

Додавання -nd до сказаного змушує його працювати. Ви також можете вказати декілька прапорів -A, таких як-A "*foo*" -A "*bar*"
Yablargo

1
Не забудьте використовувати --level=infабо --level=9999999999тому, що wget, ймовірно, саботажу роботу через максимальний рівень глибини рекурсії за замовчуванням 5.
user619271

127
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 (wget не завантажує файли з різних доменів або субдоменів за замовчуванням)
  • -p: реквізити сторінки (включає ресурси на зразок зображень на кожній сторінці)
  • -e robots=off: виконати команду robotos=offтак, ніби вона була частиною .wgetrcфайлу. Це вимикає виключення робота, що означає, що ви ігноруєте robots.txt та метатеги робота (слід знати, що це стосується, будьте обережні).

Приклад: Отримайте всі .jpgфайли з зразкового списку каталогів:

$ wget -nd -r -l 1 -A jpg http://example.com/listing/


9

Спробуйте це:

wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com

і зачекайте, поки він видалить всю зайву інформацію


Це не працює для мене. wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
Vivo

5

Відповідно до чоловічої сторінки прапором -P є:

-P префікс --directory-prefix = префікс Встановити префікс каталогів на префікс. Префікс каталогів - це каталог, куди будуть збережені всі інші файли та підкаталоги, тобто вершина дерева пошуку. Типовим є. (поточний каталог).

Це означає, що він вказує лише призначення, але де зберегти дерево каталогів. Це не згладжує дерево лише в один каталог . Як згадувалося раніше, -і прапор насправді це робить.

@Jon у майбутньому було б вигідно описати, що прапор робить, щоб ми зрозуміли, як щось працює.


2

Запропоновані рішення ідеально підходять для завантаження зображень і, якщо вам достатньо зберегти всі файли в каталозі, який ви використовуєте. Але якщо ви хочете зберегти всі зображення у визначеному каталозі, не відтворюючи все ієрархічне дерево сайту, спробуйте додати "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" з більшими числами, якщо ви мають справу з сайтами з глибокою структурою.


-7

wget утиліта витягує файли з всесвітньої павутини (WWW), використовуючи широко використовувані протоколи, такі як HTTP, HTTPS і FTP. Утиліта Wget - це вільно доступний пакет, а ліцензія під ліцензією GNU GPL. У цій утиліті можна встановити будь-яку операційну систему, схожу на Unix, включаючи ОС Windows та MAC. Це неінтерактивний інструмент командного рядка. Головною особливістю Wget є його надійність. Він розроблений таким чином, щоб він працював у повільних або нестабільних мережевих з'єднаннях. Wget автоматично запускає завантаження там, де воно було зупинено у разі проблеми з мережею. Також завантажується файл рекурсивно. Намагатимуться, поки файл не буде повністю завантажений.

Встановіть wget в linux machine sudo apt-get install wget

Створіть папку, куди потрібно завантажити файли. sudo mkdir myimages cd myimages

Клацніть правою кнопкою миші на веб-сторінці, і, наприклад, якщо ви хочете розташувати зображення, клацніть правою кнопкою миші на зображенні та скопіюйте зображення. Якщо зображень декілька, виконайте наведені нижче дії.

Якщо для завантаження з Інтернету 20 зображень відразу, діапазон починається від 0 до 19.

wget http://joindiaspora.com/img {0..19} .jpg


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