3

Мне нужна команда для ввода URL-адреса, например, photos.tumblr.com, и она загружает в папку все фотографии на этом сайте, а не только изображения с домашней страницы сайта. Эта команда должна загружать изображения со всех частей сайта, таких как photos.tumblr.com/ph1/1.png / photos.tumblr.com/ph3/4.jpg.

Пожалуйста, покажите мне пример, используя этот URL: http://neverending-fairytale.tumblr.com/ и протестируйте его, прежде чем ответить на вопрос

4 ответа4

4

Ты можешь использовать:

wget -r -A=.jpg,.png http://website.com

С помощью этой команды вы получите все файлы JPG и PNG, но вы можете быть забанены с сайта.

Итак, если вы используете:

wget --random-wait --limit-rate=100k -r -A=.jpg,.png http://website.com

Вы получите ваши изображения, ожидающие случайное время между загрузками и установив ограничение скорости.

1

Вы можете загрузить весь веб-сайт (я бы использовал wget -r -p -l inf -np), а затем (или одновременно) запустить сценарий оболочки для удаления всех файлов, не относящихся к изображениям (команда file может использоваться для проверки наличия файла это изображение).

(Опции -A/-R в wget ненадежны; они проверяют только расширение URL-адреса (поэтому вы можете фильтровать по .jpg, .jpeg, .png и т.д.), Но для этого не требуется подарок.)

1

Вы вряд ли сможете добиться хороших результатов, используя подход грубой силы, который дает большинство однострочных команд (хотя я использую опцию wget, чтобы получить весь сайт).

Я бы посоветовал вам создать сценарий, который использует некоторую форму условного выбора и циклы, чтобы фактически соответствовать и переходить по тем ссылкам, которые ведут вас к нужным изображениям.

Стратегия, которой я обычно придерживаюсь:

  • В браузере перейдите на первую интересующую страницу и покажите исходный код;
  • Щелкните правой кнопкой мыши изображение -> "Свойства изображения" -> найдите атрибуты 'src =' и теги изображения.
  • Получите общий шаблон этих тегов /links /hrefs и используйте некоторое регулярное выражение (grep -o) для анализа ссылок;
  • Используйте эти ссылки с какой-либо командой для загрузки изображений;
  • Получите также ссылки на странице, которые ведут на другие страницы;
  • Повторение.

Это действительно намного сложнее, чем однострочник, который берет все это, но опыт является поучительным. Webscraping это искусство само по себе.

Для этого я также рекомендую Python, хотя вполне возможно сделать это с помощью Shell Script (bash), если вы предпочитаете, или любым другим языком сценариев (Ruby, PHP, Perl и т.д.).

Надеюсь это поможет.

0

Вы можете использовать git-репо, например:

https://github.com/nixterrimus/tumbld

Есть и другие репозитории, которые предоставляют аналогичную функциональность.

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