1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

При скачивании картинок попутно узнавать её разрешение в пикселах 2.0

Пример скачивания картинок с определением их размеров

  1. Gorn

    Gorn A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    6 июл 2017
    Сообщения:
    90
    Симпатии:
    18
    Скачиваю большие количества (много больше 1 млн) картинок,
    апарсер прекрасно их качает.
    Но потом приходится их сортировать по разрешению и ориентации - портрет/ландшафт.
    Сейчас для такой задачи использую утилиту Amoiksorter, она медленная, но единственная может справляться с миллионами картинок.
    Было бы здорово, чтобы апарсер мог после скачивания картинки записывать и её разрешение по вертикали/горизонтали (и по разным условиям записывать их в разные каталоги, например в одну портретную, а в другую ландшафтную ориентацию)
    Наверное такие возможности есть в библиотеках ноды...
    Поддержите меня - кому еще такое требуется ИЛИ МОЖЕТ ПОТРЕБОВАТЬСЯ в будущем (;-)
     
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.547
    Симпатии:
    2.164
    Получать размеры изображения скорее всего можно в JS парсере с помощью NodeJS модуля, например такого: https://www.npmjs.com/package/image-size
    Ориентацию, как вариант, можно определять сравнивая ширину и высоту: если ширина больше высоты, то альбомная, иначе портретная.
    В ближайшее время постараемся выложить такой пример.
     
    Gorn нравится это.
  3. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.547
    Симпатии:
    2.164
    Пользователь Support разместил новый ресурс:

    Скачивание картинок - Пример скачивания картинок с определением их размеров

    Узнать больше об этом ресурсе...
     
  4. IStores

    IStores A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    4 дек 2018
    Сообщения:
    11
    Симпатии:
    3
    Is it possible to keep the original image name?

    thanks
     
  5. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.547
    Симпатии:
    2.164
    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.
     
  6. Gerero

    Gerero A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    10 янв 2014
    Сообщения:
    19
    Симпатии:
    4
    Неплохо было бы сделать опцию чтобы картинки раскидывались по папкам landscape, portrait, square и возможно unknow а не в в одну папку как сейчас.
     
  7. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.547
    Симпатии:
    2.164
    Просто используйте $orientation в Формате имени файла результата для создания нужного пути
     
  8. Gorn

    Gorn A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    6 июл 2017
    Сообщения:
    90
    Симпатии:
    18
    Уважаемый Саппорт,
    Предлагаю сделать следующую версию Скачивание картинок 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
     
  9. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.547
    Симпатии:
    2.164
    Пользователь Support обновил ресурс Скачивание картинок новой записью:

    Обновление 2.0

    Узнать больше об этом обновлении...
     
  10. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.547
    Симпатии:
    2.164
    В обновлении добавлены соответствующие возможности.
    Это выходит за рамки данного примера, но в целом легко реализуется добавлением соответствующей логики (разделение запроса на части и их использование в нужных местах) в JS парсер.
    В данном парсере нет ограничений по формату файла, поэтому не совсем понятно о чем речь...
     
    Gorn нравится это.
  11. artur0111

    artur0111 A-Parser Pro License
    A-Parser Pro

    Регистрация:
    25 дек 2021
    Сообщения:
    1
    Симпатии:
    1
    Может пригодится, установка модуля image-size:

    export PATH=$PWD/dist/nodejs/:$PATH
    Данную команду нужно выполнять в корне папки парсера (т.к. dist ведь там находится)

    Далее переходите в files
    cd files/

    И там устанавливаете модуль
    npm install image-size --save
     
    Gorn нравится это.

Поделиться этой страницей