Парсинг интернет-магазина santehnika-online.ru

Парсинг каталога товаров крупного интернет-магазина сантехники.

Реализован парсер с использованием php/mysql и curl-multi(позволяет брать контент по ссылкам асинхронно, что дает прирост в общей скорости парсинга).
Для парсинга использовались прокси сервера(70 шт.), т.к. количества товара почти 50000.

Распарсенные данные по каждому продукту сохранялись в бд MySql. Парсилось название, категории, код товара, производитель, серия, модель, характеристики, цены, картинки, комплектация товара, опциональная комплектация, дополнительные товары для комплектации, описание.

"http://santehnika-online.ru/product/mebel_dlya_vannoy_opadiris_arleks_65_svetlyy_orekh/": {
"name": "Мебель для ванной Opadiris Арлекс 65 светлый орех",
"cats": [
"Каталог",
"Мебель для ванной комнаты",
"Мебель для ванной комнаты Opadiris"
],
"properties": {
"Код товара": "219584",
"Производство": "Opadiris",
"Серия": "Арлекс",
"Модель": "Арлекс 65"
},
"oldprice": "26206",
"price": "23580",
"props": {
"Тип": "комплект (гарнитур)",
"Ширина, см": "66.5",
"Глубина, см": "47",
"Высота, см": "88",
"Область применения": "бытовая",
"Размер (ширина), см": "66.5",
"Монтаж": "напольный",
"Материал корпуса": "массив дерева",
"Материал фасада": "массив дерева",
"Материал раковины": "полимерная керамика",
"Фурнитура": "бронза",
"Форма мебели": "прямоугольная",
"Асимметричность": "нет",
"Форма раковины": "полукруглая",
"Угловая конструкция": "нет",
"Цвет": "темное дерево",
"Цвет точно": "светлый орех, патина",
"Цвет раковины": "белый",
"Стилистика дизайна": "ретро",
"Система хранения": "с ящиками, с дверками",
"Оснащение": "зеркало с подсветкой",
"Гарантия": "5 лет"
},
"images": [
"http://wwwsanton.cdnvideo.ru/upload/resize_cache/iblock/edd/302_500_1/OPADIRIS_ARLEKS_SVETLYY_OREH_N000119584_2.JPG?142695287244301",
"http://wwwsanton.cdnvideo.ru/upload/resize_cache/iblock/df2/302_302_1/OPADIRIS_ARLEKS_SVETLYY_OREH_N000119584_1.JPG?142695287338408",
"http://wwwsanton.cdnvideo.ru/upload/resize_cache/iblock/8b0/302_302_1/OPADIRIS_ARLEKS_SVETLYY_OREH_N000119584_4.JPG?142695287337266",
"http://wwwsanton.cdnvideo.ru/upload/resize_cache/iblock/4e3/302_302_1/OPADIRIS_ARLEKS_SVETLYY_OREH_N000119584_3.JPG?142695287326504",
"http://wwwsanton.cdnvideo.ru/upload/resize_cache/iblock/752/302_302_1/OPADIRIS_ARLEKS_SVETLYY_OREH_N000119584_5.JPG?142695287319515"
],
"canbuy": 1,
"cmpl1": [
"http://santehnika-online.ru/product/tumba_dlya_komplekta_opadiris_arleks_65_svetlyy_orekh/",
"http://santehnika-online.ru/product/zerkalo_opadiris_arleks_65_orekh/",
"http://santehnika-online.ru/product/mebelnaya_rakovina_opadiris_dreya_65/"
],
"cmpl2": [],
"dop": {
"Держатель для стаканов": [
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/derzhatel_dlya_stakanov_grohe_essentials_cube_40508000/"
}
],
"Дозатор": [
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/dozator_vitra_arkitekt_a44372exp_nastennyy/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/dozator_ideal_standard_connect_keramika/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/dozator_nicolazzi_classica_6006cr/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/dozator_fbs_esperado_esp_009/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/dozator_am_pm_bliss_l_a5537064/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/dozator_fbs_vizovice_viz_011/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/dozator_fbs_esperado_esp_011/"
}
],
"Контейнер": [
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/konteyner_bagno_associati_opera_op86251_cr/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/konteyner_bagno_associati_opera_op86351_cr/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/konteyner_migliore_mirella_ml_mrl_4810_cr_khrom/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/konteyner_migliore_mirella_ml_mrl_4810_crdo_khrom_zoloto/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/konteyner_migliore_mirella_ml_mrl_4810_ra_med/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/konteyner_migliore_mirella_ml_mrl_4810_br_bronza/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/konteyner_migliore_provance_ml_pro_60_527_cr_khrom/"
}
],
"Мыльница": [
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/mylnitsa_ideal_standard_connect_keramika/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/mylnitsa_fbs_esperado_esp_005_magnitnaya/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/mylnitsa_emco_polo_0730_001_00/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/mylnitsa_nicolazzi_classica_6003_s_kryshkoy/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/mylnitsa_lemark_atlantiss_lm3232c/"
}
],
"Стакан": [
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/stakan_andrea_catarina_cak420_cr_khrom/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/stakan_emco_loft_0520_001_00/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/stakan_ideal_standard_connect_steklo/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/stakan_andrea_adriana_ad1620_br_bronza/"
}
],
"Корзина для белья": [
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/korzina_dlya_belya_brabantia_102462/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/korzina_dlya_belya_brabantia_104367/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/korzina_dlya_belya_brabantia_103469/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/korzina_dlya_belya_brabantia_104381/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/korzina_dlya_belya_brabantia_105104/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/korzina_dlya_belya_brabantia_105128/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/korzina_dlya_belya_brabantia_105029/"
}
],
"Мусорное ведро": [
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/musornoe_vedro_brabantia_283420/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/musornoe_vedro_bagno_associati_grand_hotel_gh91673/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/musornoe_vedro_brabantia_364341/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/musornoe_vedro_brabantia_389146/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/musornoe_vedro_brabantia_288241/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/musornoe_vedro_zone_zo_915_22_laym/"
},
{
"type": "checkbox",
"active": "",
"url": "http://santehnika-online.ru/product/musornoe_vedro_zone_zo_915_15_seryy/"
}
]
},
"desc": ""
},

Далее выгрузка из mysql делается для нужных товаров в csv/json для наполнения интернет магазина.

Для владельцев santehnika-online.ru было бы разумно сделать возможность экспорта каталога своей продукции через api, что снизило бы нагрузку на сервер, желающих спарсить каталог напрямую с сайта.

Свежая база май 2017: более 70000 товаров.