2

Я хочу, чтобы вы помогли мне с wget , я хочу загрузить все изображения с веб-сайта стоковых изображений, например https://pixabay.com/ но когда я ввожу код в терминал, ничего не загружается, ни jpg , ни zip .

Я использовал этот код:

wget -r -A jpg https://pixabay.com/

Я иногда использую jpg или zip зависимости от сайта. Я пробовал с большим количеством сайтов:

http://www.freepik.com/
http://www.freeimages.com/
http://all-free-download.com/

Это не скачивание вообще.

2 ответа2

2

Прежде всего, кажется, что они не хотят, чтобы вы загружали их фотографии. Пожалуйста, учтите это во время игры.

Технически вы сможете загружать картинки, используя собственные теги / атрибуты. Вы можете проверить их пользовательские атрибуты, загрузив HTML-источник. К сожалению, wget (пока) не поддерживает произвольные пользовательские теги. В основном у вас есть два варианта:

  1. Расширьте wget с помощью этой функции, как это предлагается на странице https://unix.stackexchange.com/questions/258835/wget-follow-custom-url-attributes.
  2. Скачайте исходный код и напишите свой собственный почтовый процессор.

Во втором случае вам нужно скачать индексный файл и извлечь url-s изображений. Вы должны помнить, что они не хотят, чтобы вы использовали wget, поэтому они запрещают использовать его строку агента пользователя. Вы должны подделать что-то, например. Mozilla. Если вы работаете в Linux, вы должны увидеть картинки:

wget -O --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0"    "https://pixabay.com/en/photos/?q=cats&hp=&image_type=&cat=&min_width=&min_height=" | grep -o 'https://cdn.pixabay[^" ]*'

Вы просто должны передать его обратно в wget, и все готово.

..... | xargs wget

edit: @ vera решение также хорошо, однако, кажется, что загрузка части изображений в случае поиска изображения. [извините, не хватает очков, чтобы комментировать :)]

1

Вот рабочая команда:

wget -U "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0" -nd -r --level=1  -e robots=off -A jpg,jpeg -H http://pixabay.com/
  • -U "..." : веб-сайт возвращает ошибку HTTP 403 (запрещено), поскольку он позволяет только определенному списку User-Agent получить доступ к своим страницам. Вы должны указать User-Agent обычного браузера (firefox, chrome, ...). Тот, что я дал вам, является рабочим примером.
  • -nd (без каталогов) от man: «Не создавать иерархию каталогов при рекурсивном извлечении».
  • -e robots=off : не следовать исключению robot.txt
  • -H : включить поиск файлов по хостам (здесь pixabay.com и cdn.pixabay.com рассматриваются как разные хосты)

если есть какой-то механизм ограничения скорости, добавьте следующую опцию --wait 1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .