Скачиваю большие количества (много больше 1 млн) картинок, апарсер прекрасно их качает. Но потом приходится их сортировать по разрешению и ориентации - портрет/ландшафт. Сейчас для такой задачи использую утилиту Amoiksorter, она медленная, но единственная может справляться с миллионами картинок. Было бы здорово, чтобы апарсер мог после скачивания картинки записывать и её разрешение по вертикали/горизонтали (и по разным условиям записывать их в разные каталоги, например в одну портретную, а в другую ландшафтную ориентацию) Наверное такие возможности есть в библиотеках ноды... Поддержите меня - кому еще такое требуется ИЛИ МОЖЕТ ПОТРЕБОВАТЬСЯ в будущем (;-)
Получать размеры изображения скорее всего можно в JS парсере с помощью NodeJS модуля, например такого: https://www.npmjs.com/package/image-size Ориентацию, как вариант, можно определять сравнивая ширину и высоту: если ширина больше высоты, то альбомная, иначе портретная. В ближайшее время постараемся выложить такой пример.
Пользователь Support разместил новый ресурс: Скачивание картинок - Пример скачивания картинок с определением их размеров Узнать больше об этом ресурсе...
Depends on where the parser should take the original image names. In general - if they are somewhere in an accessible form (for example, they are transmitted along with a link or are directly in the link) - then it is quite possible to replace md5 with the original name.
Неплохо было бы сделать опцию чтобы картинки раскидывались по папкам landscape, portrait, square и возможно unknow а не в в одну папку как сейчас.
Уважаемый Саппорт, Предлагаю сделать следующую версию Скачивание картинок 1.0 https://a-parser.com/resources/415/ Что нужно: 1) Я поискал место, куда вписать $orientation, получилось только текстовый результат парсинга раскидать по каталогам \aparser\results\portrait\jun-09_12-13-18.txt \aparser\results\landscape\jun-09_12-13-20.txt \aparser\results\none\jun-09_12-13-19.txt КУДА вписать $orientation, чтобы картинки раскладывались по каталогам - portrait\ landscape\ none\ ? 2) Добавить возможность записывать картинки под заданными именами: - я использую такие входные данные для парсинга (3 колонки): ID записи в базе данных URL картинки каталог/ИмяКартинки 14986460 https://a-parser.com/wp-content/uploads/2020/10/main-la.png 6/05/63/foto1.jpg 14986979 https://lokeshdhakar.com/projects/lightbox2/images/image-5.jpg 7/95/63/foto2.jpg 14987107 https://i.gifer.com/9CgA.gif 0/75/73/foto3.jpg Мне нужно, чтобы каждая картинки писалась в свой каталог и своим заранее заданным именем results/images/$orientation/6/05/63/foto1.jpg results/images/$orientation/7/95/63/foto2.jpg results/images/$orientation/0/75/73/foto3.jpg А в текстовый файл результата выводились все данные о картинке (входные и выходные): ID; URL; каталог/ИмяКартинки; размер W*H; landscape; размер в байтах; код ответа сервера; 14986460; https://a-parser.com/wp-content/uploads/2020/10/main-la.png; 6/05/63/foto1.jpg;1600*960;107505; 200; Менее важный пункт (то тоже нужный): 3) Добавить возможность отфильтровывания НЕНУЖНЫХ картинок по размеру. Бывает, что картинки уже нет, вместо неё выводится "заглушка"- тоже картинка, но не нужная. То есть иметь возможность задавать список ненужных размеров картинок в байтах- например(43;455;8578;998) - картинки с такими размерами не записывать! 4) В далеком будущем - добавить обработку ВСЕХ форматов (а не только jpg), которые поддерживает модуль image-size. Я написал большой текст, но 1) и 2) задачи довольно простые, несколько строк добавить и протестировать - очень хочется это быстрее иметь. Пункт 3) конечно тоже нужен, но его наверное делать дольше, поэтому прошу реализовать 1) и 2) в первую очередь. С уважением, Gorn
Пользователь Support обновил ресурс Скачивание картинок новой записью: Обновление 2.0 Узнать больше об этом обновлении...
В обновлении добавлены соответствующие возможности. Это выходит за рамки данного примера, но в целом легко реализуется добавлением соответствующей логики (разделение запроса на части и их использование в нужных местах) в JS парсер. В данном парсере нет ограничений по формату файла, поэтому не совсем понятно о чем речь...
Может пригодится, установка модуля image-size: export PATH=$PWD/dist/nodejs/:$PATH Данную команду нужно выполнять в корне папки парсера (т.к. dist ведь там находится) Далее переходите в files cd files/ И там устанавливаете модуль npm install image-size --save