Необходимо написать парсер (веб-скраппер) для сайта apteka.ru.
Стек/Язык программировани/Используемые библиотеки абсолютно не важны.
Парсеру на вход поступают либо текстовые запросы, либо ссылки. Парсер должен вернуть .csv файл с данными.
Сразу напишу что это очень не тривиальная задача. Если вы не гуру в написании парсеров и не умеете обходить различные защиты, то лучше проходите мимо и не тратье ни свое, ни наше время.
На сайте стоит защита QRATOR + кастомная защита с капчей.
Парсер должен работать в двух режимах:
Через поиск на сайте
Через загруженные в парсер ссылки
Логика работы парсера через поиск:
Загружаются запросы в парсер
Парсер собирает со всех страниц выдачи все ссылки товаров
Затем открывает все полученные ранее ссылки и с них собирает все необходимые данные
Логика работы парсера через загруженные ссылки:
Загружаются ссылки в парсер
Эти ссылки открываются парсером и с них собираются все необходимые данные
Данные которые необходимо собирать с карточек товара:
Наименование товара
Производитель
Наличие товара
Цена
Цена со скидкой
Форма выпуска (мазь, пилюли и т.п.)
Дозировка лекарства
Объем
Ссылка на товар
Ссылка на основное изображение товара
Дата сбора (в формате timestamp)
Стандартный регион для этого сайта - Москва, но нам необходимо собирать данные с абсолютно всех регионов этого сайта. Регионы необходимо сдать в формате json: {"Название региона на русском": "Занчение для установки этого региона в парсере",}
Также одно из важнейших требований - скорость сбора. Нам необходимо обрабатывать не менее 1 млн ссылок в сутки
В идеале будет использовать примерно такой шаблон кода:
Функция parse. Грубо говоря это main, в котором будет происходить распределение это сбор по поиску или по карточкам.
Функция parsePage. Здесь происходят все необходимые действия для сбора данных с поиска
Функция parseCard. Здесь происходят все необходимые действия для сбора данных с карточки товара
Функция makeRequest. Здесь происходят запросы к сайту
ВАЖНО. Критерии оценок по которым будет приниматься задача:
Парсер работает и по поисковым запросам и по ссылкам
Парсер собирает все необходимые данные с карточек
Парсер верно собирает цены для различных регионов
Вы написали json с регионами и значениями для их установки
Парсер работает с необходимой для нас скоростью
Парсер должен стабильно отработать в течении месяца на наших серверах
Заместитель управляющего Отделением Фонда пенсионного и социального страхования Российской Федерации по г. Москве и Московской области Алексей Путин: «Клиентоцентричность - наш приоритет»
Заместитель управляющего Отделением Фонда пенсионного и социального страхования Российской Федерации по г. Москве и Московской области Алексей Путин: «Клиентоцентричность - наш приоритет»
Заместитель управляющего Отделением Фонда пенсионного и социального страхования Российской Федерации по г. Москве и Московской области Алексей Путин: «Клиентоцентричность - наш приоритет»
Заместитель управляющего Отделением Фонда пенсионного и социального страхования Российской Федерации по г. Москве и Московской области Алексей Путин: «Клиентоцентричность - наш приоритет»