Задача: нужно скачать картинки определенной тематики с разрешением не менее 1920х1080 и объёмом от 1 до 10 мегабайт. Тематика задается ключевыми словами: Также они должны быть рассортированы по темам. Решение: 1) Ищем по заданным ключам все ссылки на картинки с использованием парсера SE::Google::Images и нужных фильтров. Используем фильтры по высоте, ширине, размеру и наличию в конце ссылки расширения файла (для того, чтобы потом с ним сохранять). Высота и ширина указаны на 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 скачиваем изображения и сохраняем их в соответствующие папки. Конструктором запросов извлекаем ссылку, имя для папки и расширение файла. Прокси не используем (сайты разные и так быстрее). Изменяем 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-ти потоках. Неплохое обновление обоев для рабочего стола Скачать
Не работает, потому что в SE::Google::Images больше нету параметра size. Соответственно, если удалить два последних фильтра (которые фильтровали по размеру), то все будет работать.
Как вариант - можно указать кол-во страниц выдачи: тем самым ограничив кол-во ссылок. По-умолчанию данный параметр = 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
Это не полный пресет, это только пример извлечения пути и имени файла из запроса и подстановки его в формат файла результата.
При импортировании через урл пишет: 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==