Скачивание картинок указанного разрешения и размера

Пресет Скачивание картинок указанного разрешения и размера 1.1

Доступно владельцам лицензии
  • Автор темы Автор темы Support
  • Дата начала Дата начала

Support

Administrator
Команда форума
A-Parser Enterprise
Задача: нужно скачать картинки определенной тематики с разрешением не менее 1920х1080 и объёмом от 1 до 10 мегабайт. Тематика задается ключевыми словами:
природа
лес
макро
погодные явления
Также они должны быть рассортированы по темам.

Решение:
1) Ищем по заданным ключам все ссылки на картинки с использованием парсера SE::Google::Images SE::Google::Images и нужных фильтров.
F6cYH.png

  • Используем фильтры по высоте, ширине, размеру и наличию в конце ссылки расширения файла (для того, чтобы потом с ним сохранять). Высота и ширина указаны на 1 меньше от требуемых для того, чтобы захватить стандартный формат 1920х1080.
  • Каждую ссылку сохраняем с ее ключевым словом, чтобы потом его использовать для названия папки.
  • Включаем уникализацию, чтобы избежать повторов.
Код:
eyJwcmVzZXQiOiJEb3dubG9hZCBwaWN0dXJlcyAtIDEiLCJ2YWx1ZSI6eyJwcmVz
ZXQiOiJEb3dubG9hZCBwaWN0dXJlcyAtIDEiLCJwYXJzZXJzIjpbWyJTRTo6R29v
Z2xlOjpJbWFnZXMiLCJkZWZhdWx0Iix7InR5cGUiOiJmaWx0ZXIiLCJyZXN1bHQi
Olsic2VycCIsIndpZHRoIl0sImZpbHRlclR5cGUiOiI+IiwidmFsdWUiOiIxOTE5
Iiwib3B0aW9uIjoic2VucyJ9LHsidHlwZSI6ImZpbHRlciIsInJlc3VsdCI6WyJz
ZXJwIiwiaGVpZ2h0Il0sImZpbHRlclR5cGUiOiI+IiwidmFsdWUiOiIxMDc5Iiwi
b3B0aW9uIjoic2VucyJ9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJmb3JtYXRy
ZXN1bHQiLCJ2YWx1ZSI6IiRzZXJwLmZvcm1hdCgnJHF1ZXJ5Lm9yaWc7JGxpbmtc
XG4nKSJ9LHsidHlwZSI6InVuaXF1ZSIsInJlc3VsdCI6WyJzZXJwIiwibGluayJd
LCJ1bmlxdWVUeXBlIjoic3RyaW5nIiwidW5pcXVlR2xvYmFsIjpmYWxzZX0seyJ0
eXBlIjoiZmlsdGVyIiwicmVzdWx0IjpbInNlcnAiLCJsaW5rIl0sImZpbHRlclR5
cGUiOiJyZW1hdGNoIiwidmFsdWUiOiJcXC4oXFx3ezMsNH0pJCIsIm9wdGlvbiI6
IiJ9LHsidHlwZSI6ImZpbHRlciIsInJlc3VsdCI6WyJzZXJwIiwic2l6ZSJdLCJm
aWx0ZXJUeXBlIjoiPiIsInZhbHVlIjoiMTAyNCIsIm9wdGlvbiI6InNlbnMifSx7
InR5cGUiOiJmaWx0ZXIiLCJyZXN1bHQiOlsic2VycCIsInNpemUiXSwiZmlsdGVy
VHlwZSI6IjwiLCJ2YWx1ZSI6IjEwMjQwIiwib3B0aW9uIjoic2VucyJ9XV0sInJl
c3VsdHNGb3JtYXQiOiIkcDEucHJlc2V0IiwicmVzdWx0c1NhdmVUbyI6ImZpbGUi
LCJyZXN1bHRzRmlsZU5hbWUiOiJwaWN0dXJlc1xcbGlua3NfJGRhdGVmaWxlLmZv
cm1hdCgpLnR4dCIsImFkZGl0aW9uYWxGb3JtYXRzIjpbXSwicmVzdWx0c1VuaXF1
ZSI6Im5vIiwicXVlcnlGb3JtYXQiOlsiJHF1ZXJ5Il0sInVuaXF1ZVF1ZXJpZXMi
OmZhbHNlLCJzYXZlRmFpbGVkUXVlcmllcyI6ZmFsc2UsIml0ZXJhdG9yT3B0aW9u
cyI6eyJvbkFsbExldmVscyI6ZmFsc2UsInF1ZXJ5QnVpbGRlcnNBZnRlckl0ZXJh
dG9yIjpmYWxzZX0sInJlc3VsdHNPcHRpb25zIjp7Im92ZXJ3cml0ZSI6dHJ1ZX0s
ImRvTG9nIjoibm8iLCJrZWVwVW5pcXVlIjoiTm8iLCJtb3JlT3B0aW9ucyI6ZmFs
c2UsInJlc3VsdHNQcmVwZW5kIjoiIiwicmVzdWx0c0FwcGVuZCI6IiIsInF1ZXJ5
QnVpbGRlcnMiOltdLCJyZXN1bHRzQnVpbGRlcnMiOltdLCJjb25maWdPdmVycmlk
ZXMiOltdfX0=

2) По полученным в 1-м шаге ссылкам с помощью Net::HTTP Net::HTTP скачиваем изображения и сохраняем их в соответствующие папки.
n58ds.png

  • Конструктором запросов извлекаем ссылку, имя для папки и расширение файла.
  • Прокси не используем (сайты разные и так быстрее).
  • Изменяем Max body size, чтобы большие картинки не обрезались.
  • Отфильтровываем все что меньше 100 Кб (бывает что по ссылке отдается страница, а не картинка).
  • Имя файла и путь генерируем из полученных ранее данных.
  • ВНИМАНИЕ! Не рекомендую ставить большое кол-во потоков, оптимально 50-100 потоков.
Код:
eyJwcmVzZXQiOiJEb3dubG9hZCBwaWN0dXJlcyAtIDIiLCJ2YWx1ZSI6eyJwcmVz
ZXQiOiJEb3dubG9hZCBwaWN0dXJlcyAtIDIiLCJwYXJzZXJzIjpbWyJOZXQ6OkhU
VFAiLCJkZWZhdWx0Iix7InR5cGUiOiJvdmVycmlkZSIsImlkIjoidXNlcHJveHki
LCJ2YWx1ZSI6ZmFsc2V9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJnb29kQ29k
ZSIsInZhbHVlIjoyMDB9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJxdWVyeWZv
cm1hdCIsInZhbHVlIjoiJHF1ZXJ5LmxpbmsifSx7InR5cGUiOiJvdmVycmlkZSIs
ImlkIjoiZm9ybWF0cmVzdWx0IiwidmFsdWUiOiIkZGF0YSJ9LHsidHlwZSI6Im92
ZXJyaWRlIiwiaWQiOiJtYXhfc2l6ZSIsInZhbHVlIjoiMTA0ODU3NjAifSx7InR5
cGUiOiJmaWx0ZXIiLCJyZXN1bHQiOiJbJSBkYXRhLmxlbmd0aCAlXSIsImZpbHRl
clR5cGUiOiI+IiwidmFsdWUiOiIxMDI0MDAiLCJvcHRpb24iOiJzZW5zIn1dXSwi
cmVzdWx0c0Zvcm1hdCI6IiRwMS5wcmVzZXQiLCJyZXN1bHRzU2F2ZVRvIjoiZmls
ZSIsInJlc3VsdHNGaWxlTmFtZSI6InBpY3R1cmVzLyRxdWVyeS5uYW1lLyRxdWVy
eS5udW0tJGRhdGVmaWxlLmZvcm1hdCgpLiRxdWVyeS5leHQiLCJhZGRpdGlvbmFs
Rm9ybWF0cyI6W10sInJlc3VsdHNVbmlxdWUiOiJubyIsInF1ZXJ5Rm9ybWF0Ijpb
IiRxdWVyeSJdLCJ1bmlxdWVRdWVyaWVzIjpmYWxzZSwic2F2ZUZhaWxlZFF1ZXJp
ZXMiOmZhbHNlLCJpdGVyYXRvck9wdGlvbnMiOnsib25BbGxMZXZlbHMiOmZhbHNl
LCJxdWVyeUJ1aWxkZXJzQWZ0ZXJJdGVyYXRvciI6ZmFsc2V9LCJyZXN1bHRzT3B0
aW9ucyI6eyJvdmVyd3JpdGUiOmZhbHNlfSwiZG9Mb2ciOiJubyIsImtlZXBVbmlx
dWUiOiJObyIsIm1vcmVPcHRpb25zIjpmYWxzZSwicmVzdWx0c1ByZXBlbmQiOiIi
LCJyZXN1bHRzQXBwZW5kIjoiIiwicXVlcnlCdWlsZGVycyI6W3sic291cmNlIjoi
cXVlcnkiLCJ0eXBlIjoic3RyaW5nU3BsaXQiLCJzZXBhcmF0b3IiOiI7IiwidG8i
OlsibmFtZSIsImxpbmsiXX0seyJzb3VyY2UiOiJsaW5rIiwidHlwZSI6InJlZ2V4
IiwicmVnZXgiOiJcXC4oXFx3KykkIiwicmVnZXhUeXBlIjpudWxsLCJ0byI6WyJl
eHQiXX1dLCJyZXN1bHRzQnVpbGRlcnMiOltdLCJjb25maWdPdmVycmlkZXMiOltd
fX0=

Результат:
В итоге мы получили 360 картинок (объёмом 1 Гб) отсортированых по тематике за 3,5 минуты на 50-ти потоках. Неплохое обновление обоев для рабочего стола:)

Скачать
 
не работает первый пресет, ничего не парсится=(
ссылки вроде парсятся, но результирующий файл пустой
 
Последнее редактирование:
как ограничить кол-во собираемых ссылок на каждую темаику?
 
Как вариант - можно указать кол-во страниц выдачи:
ZXRGz.png

тем самым ограничив кол-во ссылок. По-умолчанию данный параметр = 10
 
возник вопрос по сохранению картинок, да если с ПС парсить урлы картинок и сохранять то все ОК

но вот если парсить по урлам с конкретного сайта то возникла необходимось сохранять вложенность, как это делают Teleport или HTTrack Website Copier (они правда медленные по сравнению с апарсером)

т.е. например есть урлы на картинки
http://site.com/papka1/image.jpg
http://site.com/papka1/papka2/image.jpg
http://site.com/papka1/1/2/image.jpg

можно ли в а-парсере
Конструктором запросов извлекаем ссылку, имя для папки и расширение файла.
извлекать имя для папки /papka1/ или /papka1/papka2/ или /papka1/1/2/

если да то подскажите решение плиз!
 
Точно также Конструктором запросов (можно и Конструктором результатов) извлекаете путь вместе с именем и расширением файла и используете их формате имени файла результата.
Например (жирным выделено то, что нужно извлекать):
http://site.com/papka1/image.jpg
http://site.com/papka1/papka2/image.jpg
http://site.com/papka1/1/2/image.jpg
 
Точно также Конструктором запросов (можно и Конструктором результатов) извлекаете путь вместе с именем и расширением файла и используете их формате имени файла результата.
Например (жирным выделено то, что нужно извлекать):
http://site.com/papka1/image.jpg
http://site.com/papka1/papka2/image.jpg
http://site.com/papka1/1/2/image.jpg
можно пример реализации? или это будет платно?)
 
Это не полный пресет, это только пример извлечения пути и имени файла из запроса и подстановки его в формат файла результата.
OfSIQ.png
 
При импортировании через урл пишет:
Load preset error: network error


Скиньте в спойлер код для версии 1.1
 
Здравствуйте. Вот код для импорта
eJztVm1P2zAQ/iuVVTTQSklLy0YmTWJs7EUTsNF9airkNdfUw7GD7RS6qv99Z8dJ
WuiqjX3dF8c+3z332D4/zoIYqm/0pQINRpNwuCCZ65OQvJV3gksaNzI2NjlaG/uN
DmmRjCoNyjoPydW7MHwvZcIhDD+mNAGNDjFMaM4NaS2ImWeAUBPGDSicQhQ7Ew4J
QmRouGOxmZJRy7sMCv/XODOjPLf9znHnGIcyM0wKHGsQmiz/BHsKLJma7eDBiyeC
cyZuHkErSKkZT1cSRFF7N4ruFoet3nKvuZqKLEejElefSYWRaG1mnbbN0J44y+6z
5m0Oat6WiiWvmjZpFIlnexUjfUVnMJAFVajNZzg6p6mlUB5fFNlwfd2MqQHrXebY
a5t7PC1C45hZcpQXdOwR1xS/CXbrlqSNYiJBf8uMgT5TMkWzAQfi6JbLGZKCvt2o
3MV/KWJIOKFcQ4topH9GkUz8cIbhtlIj1YXbMLQviBQnnH+GGfDazeG/yRmPsSZP
Jhj00Qdudrl4hLGslriaagbqTiGH2imWn2WCCxUSl3kDkFU7cm4tqVRQARiVQwWL
tysDEdszr2wnWW1a47e25+vGsRQTllwgM8ViKD1zMcArfCFOZZpxsIQ33twuJso1
fK3L40T7LbeDivJDuFOXFEGrW02MlFx/uirIZ4ph9fWrarA1nwe9w4lte4Hrv1zp
g2t7rg0i4b7fXdt3Xh1vG3sP29K1eFHje7TDR8ixi/C4DTcoAroPExaunuLE3f2t
Cth9oIDnYMLww2BwuVH4pD8snGT2tPEEMiXv57VC+Or6bUQiZXwq3dhHDLtBMNoS
4cqpuNorQuR1xMnWluCU3l9r9hPWNLL3sv/iKNiqi2S400BdoW0OIjHTxs6IbJXd
bi8IHgvv7xTRIj9F8g78qgWaq36e7m+QQD8Lf6OETgnWVdBT+q+Coib3RBlcEC1z
NYaypK3yFKVUvEBXGWf2sPBKUb9U8srJk91ye+TVM20rtwJzpgpLQQL3jpD9Vg/2
c/dYO2NRvyLnvMS2RTJa/qtMF4hbNbncwH8V5QJtWPI9qO5H8UeQ0vl1cHzdOdoP
jvf7gfsdcOvzQlf9Hi42/fCFCyyLWgZxiOMf+rKItam9D+6Idre9s/wF01uN9A==
 
Назад
Верх