Написание парсера для сайта apteka.ru

Цена договорная
06 сентября 2024, 14:00 • 19 откликов • 188 просмотров
Необходимо написать парсер (веб-скраппер) для сайта apteka.ru.

Стек/Язык программировани/Используемые библиотеки абсолютно не важны.

Парсеру на вход поступают либо текстовые запросы, либо ссылки. Парсер должен вернуть .csv файл с данными.

Сразу напишу что это очень не тривиальная задача. Если вы не гуру в написании парсеров и не умеете обходить различные защиты, то лучше проходите мимо и не тратье ни свое, ни наше время.

На сайте стоит защита QRATOR + кастомная защита с капчей.

Парсер должен работать в двух режимах:
  • Через поиск на сайте
  • Через загруженные в парсер ссылки
Логика работы парсера через поиск:
  1. Загружаются запросы в парсер
  2. Парсер собирает со всех страниц выдачи все ссылки товаров
  3. Затем открывает все полученные ранее ссылки и с них собирает все необходимые данные
Логика работы парсера через загруженные ссылки:
  1. Загружаются ссылки в парсер
  2. Эти ссылки открываются парсером и с них собираются все необходимые данные
Данные которые необходимо собирать с карточек товара:
  • Наименование товара
  • Производитель
  • Наличие товара
  • Цена
  • Цена со скидкой
  • Форма выпуска (мазь, пилюли и т.п.)
  • Дозировка лекарства
  • Объем
  • Ссылка на товар
  • Ссылка на основное изображение товара
  • Дата сбора (в формате timestamp)
Стандартный регион для этого сайта - Москва, но нам необходимо собирать данные с абсолютно всех регионов этого сайта.
Регионы необходимо сдать в формате json:
{"Название региона на русском": "Занчение для установки этого региона в парсере",}

Также одно из важнейших требований - скорость сбора. Нам необходимо обрабатывать не менее 1 млн ссылок в сутки

В идеале будет использовать примерно такой шаблон кода:
  • Функция parse. Грубо говоря это main, в котором будет происходить распределение это сбор по поиску или по карточкам.
  • Функция parsePage. Здесь происходят все необходимые действия для сбора данных с поиска
  • Функция parseCard. Здесь происходят все необходимые действия для сбора данных с карточки товара
  • Функция makeRequest. Здесь происходят запросы к сайту
ВАЖНО. Критерии оценок по которым будет приниматься задача:
  1. Парсер работает и по поисковым запросам и по ссылкам
  2. Парсер собирает все необходимые данные с карточек
  3. Парсер верно собирает цены для различных регионов
  4. Вы написали json с регионами и значениями для их установки
  5. Парсер работает с необходимой для нас скоростью
  6. Парсер должен стабильно отработать в течении месяца на наших серверах