Парсер
Необходимо написать парсер, представляет собой серверный скрипт, считывающий ряд информационных данных с сайта https://www.flickr.com/ и формирующий ZIP архив для дальнейшего импорта на самописной CMS в соответствующем виде.
Техническое задание на разработку парсера:
Парсинг списка страниц:
Парсим список тегов-трендов недели https://www.flickr.com/photos/tags-week/ или тренды за сегодня https://www.flickr.com/photos/tags-day/ и https://www.flickr.com/photos/tags(блок Tags All Time Most Popular)
После берем основную точку входа https://www.flickr.com/search/?dimension_search_mode=min&width=5000&advanced=1&media=photos&license=9&sort=interestingness-desc&safe_search=1&text= и в параметр text в цикле тэги полученные на 1 этапе
Парсим все HTML страницы в соответствии с параметром text, например https://www.flickr.com/search/?dimension_search_mode=min&width=5000&advanced=1&media=photos&license=9&sort=interestingness-desc&safe_search=1&text=village Запуск скрипта должен быть возможен из консоли
Скрипт должен иметь возможность восстанавливать парсинг с последней точки при обрыве связи. (Хранить ID спарсенных изображений и при повторном запуске сверять полученные ID изображений и в случае совпадения пропускать)
Необходимо производить парсинг страниц с интервалом 1-2 секунд для избежания бана IP сервера
Обработка страниц:
При обработке полученных данных при парсинге списка страниц мы должны получить текстовые файлы без расширения в кодировке UTF-8 со следующей структурой
каждый макрос с новой строки
1. Метаданные.
#title# – парсится из тэга H1 страницы изображения
#desc# – парсится из тэга description, описание поста
#tags# – парсится из блока tags
#imgs# – полное URL изображения на сайте flickr в максимальном качестве
В конце URL изображения должна быть лицензия Creative Commons – CC0, например: https://www.flickr.com/photo.png | Creative Commons – CC0
#user# – имя автора Flickr Public Domain, задается в настройках
При обработке страниц необходимо исключить дублирующиеся изображения по имени файла
Выгрузка
Полученные данные необходимо выгрузить в структурированные папки, где:
Наименование папок являются имена тэгов из 1го этапа парсинга
Сформировать zip архив
Пример архива доступен по https://yadi.sk/d/8f8ib8n03ULu65
Дополнительные требования к реализации:
Никакая другая информация парситься не должна.
Все файлы в кодировке UTF-8
Необходимо пропускать изображения с пустыми #tags# (опционально)
Парсер должен запускаться по требованию на сервере с ключом
без ключей обычный парсинг всех данных
count – количество изображений, при отсутствии данного параметра необходим парсинг без ограничения по количеству
tdk – параметр 1-пропустить изображения с пустыми description
консольный запуск скрипта
Полное ТЗ здесь https://docs.google.com/document/d/1dr72HcS9YVmRKf9FWIhbCVAJf1JUtZIRT3z4cETpZNo/edit
Оплата поэтапно либо в конце