Парсер Яндекс.Маркет
- 51
- 0
- Опубликовано: 2017-10-06
Парсер был реализован в виде Java-приложения. Срок разработки затянулся в связи с наличием большого количества защитных механизмов Маркета. Так, например, при попытке спарсить любую категорию Яндекс.Маркет позволяет подгрузить не более 500 товаров, дальше в пагинации начинают отображаться клоны. Хотя в категории может быть несколько десятков тысяч карточек.
Спарсить требовалось всё: короткое описание товара, все изображения, характеристики, при этом необходимо было привязать товар к категории на нашем сайте.
Сам процесс парсинга был разбит на 2 этапа.
1) Подготовка. В рамках этого этапа с маркета была выгружена таблица с данными о категориях (названия, идентификаторы). После чего был быстро собран интерфейс для наполнения базы инструкций для парсера. В базу инструкций входили записи о каждой категории маркета в которой есть карточки (в некоторых категориях карточек просто-напросто не было), установка связи между категорий на нашей площадке и Маркете, идентификаторы двух типов (id каталога, или, при отсутствии оного, hid категории), ценовая планка на момент заполнения и примерный "шаг", который позволял отфильтровать результаты таким образом, чтобы выдача категории не давала больше 500 результатов (таким образом была решена проблема выдачи клонов). Методом тестирования было найдено оптимальное количество прокси для требуемой скорости парсинга (которая один черт утыкалась в загрузку картинок).
2) Сам парсинг. Маркет время от времени выдавал весьма странные ошибки, которые приходилось обрабатывать, иногда вручную перезапуская парсер. Сам процесс занял около двух недель, ввиду лимита на количество запросов и проблему с перебором ценового фильтра.
По итогу было собрано порядка 370 тысяч товаров в более чем 2000 категорий.