Как скачать изображения по списку и их оптимизировать сохранив при этом файловую структуру?

Как скачать изображения по списку и их оптимизировать сохранив при этом файловую структуру

Данная методика пакетной оптимизации изображений подходит для обработки большого количества картинок, чтобы массово скачать картинки по ссылкам, в моем примере 1200 файлов которые были в разных форматах (.jpg, .png) и с обязательным сохранением файловой структуры, т.е. расположения папок в которых лежат файлы.

Зачем нужна оптимизация изображений?

В рамках технической SEO оптимизации сайта.

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

  1. для оптимизации скорости загрузки страниц;
  2. поведенческие факторы на сайте;
  3. трафик с поиска по картинкам;
Видеоинструкция 8 минут

Какие инструменты использовать для пакетного скачивания и сжатия?

  1. Сервис массового сжатия изображений irfanview.com (бесплатно).
  2. Консольная утилита WGET — для массового скачивания файлов по заранее подготовленному списку https://eternallybored.org/misc/wget/ (бесплатно).
  3. Лягушка https://www.screamingfrog.co.uk/seo-spider/ (до 500 стр. сканирования бесплатно).

Команда для WGET
c:\wget.exe -i c:\url-list-jpg.txt —secure-protocol=auto -x -nc -c -P c:\files\

Подготовка к работе, что и как делать

Получить список URL всех изображений, чтобы массово скачать картинки по ссылкам

Для начала нужно получить список URL изображений которые нам нужно скачать с сайта и сохранить каждый URL с новой строки в текстовом файле.

Для этого открываем в Screaming Frog вкладку Images и сортируем по размеру более 100 kb.

Сортируем список URL изображений которые более 100 Kb и экспортируем в Excell.
Сортируем список URL изображений которые более 100 Kb и экспортируем в Excell.

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

Фильтруем по расширению и сохраянем полученный список URL изображений
Фильтруем по расширению и сохраняем полученный список URL изображений

Для чего нужно фильтровать по расширению? При сжатии изображений программой irfanview с последующим сохранением она конвертирует все входные форматы в один, т.е. если на входе у нас были смешанные форматы картинок (.png, .jpg, .gif и т.д.) то на выходе получится один формат который задан в настройках программы, например на выходе мы получим все файлы в формате .jpg и потом при массовой заливке на сервер (хостинг) нужно будет вручную править в коде путь к изображению, или делать дополнительно работу по замене кода массово.

Сохраняем полученный файл с названием — «url-list-jpg.txt» в паке откуда будем работать, в моем случае я сохранил на диск C:\

Установка и настройка wget

Найти и скачать можно с любого другого источника, я использовал версию 1.20.3 (64 bit) для Winows 10 вот отсюда https://eternallybored.org/misc/wget/

Распаковываем архив и настраиваем утилиту. Для тех кто пользуется ей впервые как я, это консольная программа без интерфейса.

Для частой работы с WGET ее желательно настроить, но для работ в рамках SEO, тут я имею ввиду, что пользоваться ей буду не так часто и только, чтобы массово скачать картинки с сайта, я её буду запускать командой из консоли, т.е. настройку пропускаю, если вам нужна настройка напишите в комментах сделаю инструкцию.

Скачал и распаковал по такому пути c:\wget. В корне диска также создаю папку «files» куда буду скачивать все картинки по списку URLов и там же в корне диска сохраняю список адресов картинок в текстовом файле, который создал из парсинга Screaming Frog`ом, у меня получилось:

  1. c:\wget — консольная утилита
  2. c:\files — папка куда будут скачены картинки
  3. c:\url-list.txt — наш файл со списком URL картинок
Подготовка к скачиванию
Подготовка к скачиванию

Когда все готово переходим к следующему шагу — к массовому скачиванию файлов изображений по заданному мною списку.

Как массово скачать картинки с сайта — решение

Когда все готово запускаем в консоле нашу утилиту WGET отдаём ей команду на скачивание и ожидаем. Для это в следующей последовательности делаем.

На клавиатуре вызываем командную строку комбинацией Win + R и в ней вводим команду запуска консоли Windows — cmd

вызываем с клавиатуры командую строку и вводим cmd
вызываем с клавиатуры командую строку и вводим cmd

2 В блокноте создаем готовую команду

В блокноте заранее подготовить команду для консоли
В блокноте заранее подготовить команду для консоли

c:\wget.exe -i c:\url-list.txt —secure-protocol=auto -x -nc -c -P c:\files\

Поясню что это за переменные используемые в команде

-i и дальше путь для файла со списком URL для скачивания;
—secure-protocol=auto — это используем, если на сайте защищенный протокол HTTPS, если простой HTTP, то убирайте эту команду;
-h — если важна структура сохранения файлов как на источнике (что очень нужно в моей задаче);
-nc — если файл уже есть, и он скачан полностью, то он не будет загружен заново;
-c — если файл закачан не полностью, то будет продолжена закачка;
-P и дальше папка, куда сохранять данные;

Кому интересны все команды, а их очень много, то просто набираем в консоли wget -h или c:\wget\wget.exe -h

Запускаю в консоле утилиту и процесс скачивания — нажимаю enter, после старта на черном экране будет виден лог операций, по завершению задачи выведется сообщение что команда выполнена, сколько времени прошло и сколько файлов скачено. Если нужно прервать операцию жмем Ctrl + C (Break).

Запуск в консоле WGET на массовое скачивание файлов
Запуск в консоле WGET на массовое скачивание файлов

Пакетное изменение размера изображения

Делаем сжатие картинок в разных папках

Завершающим этапом в данной методике будет массовое сжатие .jpg изображений в нескольких папках за один раз.

Для этого скачиваем программу для пакетной обработки графики IrfanView https://www.irfanview.com/ устанавливаем и настраиваем по следующей инструкции.

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

Настройка IrfanView под нашу задачу пакетного сжатия

Для настройки программы переходим в меню -> File затем выбираем -> Batch Conversion/Rename

Для настройки программы переходим в меню -> File затем выбираем -> Batch Conversion/Rename
Для настройки программы переходим в меню -> File затем выбираем -> Batch Conversion/Rename

Следующий шаг настройки — добавить все папки и подпапки с нашими файлами изображений.

Добавляем все папки и подпапки для сжатия картинок
Добавляем все папки и подпапки для сжатия картинок

1 — В настройках IrfanView «Batch Convertion» нужно поставить «галочку» 2 — «Include subfolders» (включая подпапки), 3 — далее выбираем путь к нашим картинкам и 4 — добавляем всё. В нижнем окне результатом появятся все файлы изображений.

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

Переходим к настройкам сжатия в .JPG в том же окне «Batch Convertion» нажав на «Options»

Настройки сжатия изображений в IrfanView
Настройки сжатия изображений в IrfanView

В настройках сжатия оставляем только «Save as progressive JPG» — сохранить в формате «Прогрессивный JPG». Для сравнения загрузок обоих форматов приведу пример.

Обычный jpg формат изображенияПрогрессивный jpg формат изображения
Загрузка изображения в обычном JPG форматеЗагрузка изображения в прогрессивном формате
Пример загрузки обычного и прогрессивного JPG

Что же я отключил в настройках IrfanView? Я отключил всё что облегчит нашим картинкам загрузку и увеличит PageSpeed Insights а именно такую дополнительную информацию об изображении как время и место съемки, авторство, информацию о фотоаппарате или устройстве съёмки и т.д.

Устанавливаем настройки сжатия и формат сжатия прогрессивный .jpg
Устанавливаем настройки сжатия и формат сжатия прогрессивный .jpg

В следующем шаге Use advanced options (for bulk resize…) и нажимаем Start Batch, а затем наблюдаем за сжатием…

Use advanced options (for bulk resize…)
Рейтинг
( 1 оценка, среднее 5 из 5 )
Олег Черников/ автор статьи
Понравилась статья? Поделиться с друзьями:
Комментарии: 4
  1. Артём

    Нет правильного или идеального формата для изображений. Все зависит от типа картинки и как вы планируете ее использовать.Чаще всего используются такие форматы: JPEG, PNG, GIF. Их поддерживают все браузеры и поисковые системы. Реже — SVG и WebP.

    1. Олег Черников (автор)

      Артём спасибо за комментарий, но не совсем понятно что Вы хотели этим сказать.

  2. Алексей

    Картинки и другие должны быть доступны для сканирования. Из-за блокировки страниц Google может получить неполную информацию о вашем сайте. Такое часто случается, если файл robots.txt блокирует доступ ко всем или некоторым веб-страницам. Если робот Googlebot не имеет доступа к CSS, JavaScript или изображениям страницы, мы не сможем определить, как она будет отображаться в мобильном браузере. То есть Google может не распознать, что страница адаптирована для мобильных устройств, и показать ее неправильно пользователям, выполняющим поиск с мобильных устройств.

  3. Николай

    Огромное спасибо за инструкцию :idea: , хорошо сжал 10000 фотографий товаров за 40 минут :!: , наверное из-за старго компа так долго, на домшнем тестил за 3 м 40 секнуд 100 файлов скачал и за 1 минуту ужал, Гугл Спид +23 пункта прибавил к странице после загрузки сжатых изображений, а вот .PNG не получилось так хорошо ужать, на выходе сильная потеря качества, пришлось их массово конвертировать в .jpg и потом ужимать, вроде норм получилось, но тоже не то, для себя сделал вывод что для интернет магазинов лучше подходит ДжиПег.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: