Wget - Скачать все изображения с веб-сервера
Поэтому я хочу скачать все изображения с веб-сервера, в частности, JPEG. Команда, которую я запускаю, выглядит законной, и я знаю, что на сайте есть jpegs. Так например
wget -r -PC:/ -A.jpg http://somesitewithjpegs.com/
Насколько я понимаю, эта команда будет рекурсивно сканировать весь сервер только для поиска изображений в формате jpeg, а затем загружать эти изображения на диск C:/. По какой-то причине это не работает.
Глядя на исходный код, я вижу, что изображения на самом деле не встроены непосредственно в страницу, а размещены в другом каталоге на сервере. Поэтому wget не может загрузить эти изображения?
2 ответа
Чтобы ответить на мой собственный вопрос, это правда, что wget может только переходить по ссылкам и скачивать файлы напрямую. Видя, как большинство изображений связаны с каталогом, который не поддерживает списки каталогов или имеет ограничения, wget не может проанализировать содержимое указанного каталога.
Хорошим примером этого является сайт WordPress, который хранит изображения в папке wp-content. Попытка пройти эту папку приводит к ошибке 403. Несмотря на то, что мы можем видеть это изображение в нашем браузере как связанную картинку, wget не имеет к ней доступа, поскольку изображение хранится в каталоге без прямого доступа.
Кто-то может добавить к этому ответу, если я упускаю детали или неправильно объясняю процесс.
Поэтому wget не может загрузить эти изображения?
Ответ: Возможно / Скорее всего.
Попробуйте добавить эти параметры:
-1l -H
-H указывает приложению охватывать домены, что означает, что оно должно следовать ссылкам, указывающим на сайт (возможно, изображения подаются с другого сервера). И -l1 означает углубление только на один уровень, то есть не переходите по ссылкам на связанном сайте. Таким образом, вы сможете загружать содержимое с другого сервера, на котором размещены файлы изображений.
iirc, зеркалируя весь сайт WordPress, вы можете получить доступ к изображениям из папки wp-content.