Май 10, 2019, Автор Юрий Серченко

Кейс: парсинг каталога запчастей и импорт в интернет-магазин

Кейс: парсинг каталога запчастей и импорт в интернет-магазин

Интернет-магазины, их разработка, продвижение и администрирование – это отдельное направление деятельности нашей команды, который имеет свои уникальные особенности. Одна из них заключается в том, что разработка интернет-магазина — это лишь первый шаг к запуску полноценного бизнеса. Помимо этого много сил тратится на формирование структуры, настройку, подключение к различным сервисам, администрирование, управление ассортиментом и так далее.

И чем больше товаров в каталоге, те более сложным может быть его заполнение. Если речь идет о магазине, в котором 50-150 товаров, многие изменения можно вносить вручную, без сложных доработок. Совершенно другого подхода требуют сайты, на которых размещаются тысячи, десятки или даже сотни тысяч позиций.

О проекте

Сегодня мы рассмотрим именно такой случай: интернет-магазин автозапчастей для BMW, в котором представлено 273000 (!!!) товаров. В этом кейсе мы расскажем об опыте парсинга каталога с последующим импортом на сайт клиента для его заполнения.

Сам интернет-магазин Вы сможете посмотреть по ссылке.

Шаг первый: парсинг каталога

Парсинг — автоматизированный сбор информации с целевого сайта или сайтов (так называемых «сайтов-доноров») для последующего использования полученных данных при решении определенных задач (например, для заполнения каталога интернет-магазина).

Результат парсинга онлайн-каталога

Парсинг официального справочника автозапчастей БМВ имел ряд особенностей:

Сложная, многоуровневая рубрикация

Многие запчасти подходят к десяткам различных моделей авто. Таким образом, при 273000 товаров на выходе мы получили более миллиона (!!!) цепочек категорий (Серия > Модель > Подмодель > Тип запчасти > Узел). В этой связи рубрикацию пришлось парсить и группировать отдельно.

Нюанс был ещё и в том, что для корректного импорта необходимо было собрать все цепочки категорий в одной ячейке таблицы. Но ни один из редакторов (excel, libreoffice, openoffice) не может сосредоточить в одной ячейке более 33 000 символов. Поэтому файлы нужно было изначально подготавливать нужного вида в парсере с помощью дополнительного ПО.

Кейс: парсинг каталога запчастей и импорт в интернет-магазин

Ограничение скорости парсинга

Учитывая огромные массивы данных, мы ограничили скорость работы бота. В противном случае парсинг был бы похож на ddos-атаку на целевой сайт, что привело бы либо к его неработоспособности, либо к блокировке нашей активности. В итоге сбор информации занял около 10 дней.

Общий вес выгрузки

Общий вес выгрузки составил 1,78 ГБ. И это только csv-файлы с текстовым содержимым, не считая изображений, объем которых составил более 10Гб. Всё это накладывало дополнительные сложности, связанные с передачей и хранением данных.

Кейс: парсинг каталога запчастей и импорт в интернет-магазин

Импорт в интернет-магазин на CMS OpenCart

В большинстве CMS импорт осуществляется с помощью специальных плагинов / модулей. OpenCart не является исключением: для импорта каталога в интернет-магазин по результатам парсинга мы предполагали использовать решение CSV Price Pro import:

Кейс: парсинг каталога запчастей и импорт в интернет-магазин

Проблемы и решения

Однако, учитывая объем данных, и здесь не обошлось без сложностей. В процессе выяснилось, что сервер клиента не выдерживает нагрузки. Импорт затянулся. Файлы грузились часами, приходилось постоянно следить за процессом, чтобы не пропустить появление ошибок.

Но и с этой задачей мы справились успешно, проведя ряд мероприятий:

  • перенесли сайт клиента на более мощный выделенный сервер (VPS), который удалось настроить для решения нашей задачи;
  • оптимизировали структуру csv-файлов для профилактики перегрузок сервера при импорте (ошибок 503 и 504);
  • провели импорт товаров в интернет-магазин в несколько подходов: отдельно характеристики и фото товаров, отдельно — рубрикация.

Что получилось?

273000Товаров с фотографиями и характеристиками
40000Уникальных категорий в рамках 5-уровневой структуры

Пример раздела

Кейс: парсинг каталога запчастей и импорт в интернет-магазин

Пример карточки товара

Кейс: парсинг каталога запчастей и импорт в интернет-магазин
Кейс: парсинг каталога запчастей и импорт в интернет-магазин

Над задачей работали

c0ab71b5-62c0-450a-9980-24c1d3710a0c
Юрий Серченко
СЕО, контент-менеджер, руководитель проектов
Наполнение сайтов, поддержка работы сайтов, продвижение, управление проектами
CEO Олег Фролов
Олег Фролов
CEO, партнер
Продажи. Управление проектами. SEO. Разработка сайтов на CMS Wordpress и Битрикс.

Оставить комментарий

avatar
  Подписаться  
Уведомление о

Scroll Up