Михаил Сисин Со-основатель облачного сервиса по сбору информации и парсингу сайтов Diggernaut. Работает в области сбора и анализа данных, а также разработки систем искусственного интеллекта и машинного обучения  более десяти лет.

Диггернаут поможет отпарсить интернет-магазин Desigual и получить данные о товарах и ценах

Диггернаут поможет отпарсить интернет-магазин Desigual и получить данные о товарах и ценах

Desigual — известный бренд, производящий одежду, расположенный в Барселоне, Испания. Бренд выделяется своими необычными цветовыми решениями, ассиметричными дизайнами и яркими принтами. Компания была основана в 1984 году швейцарским бизнесменом Томасом Мэйером на острове Ибица. С 2002 по конец 2003 компания была под управлением Манела Аделла, который в последствии стал новым президентом компании. Desigual производит и продает одежду и обувь для женщин, мужчин и детей. 60% роста компании пришлось на период с 2002 по 2009. В 2011 компания насчитывала 2900 сотрудников 72 разных национальностей. Диггернаут может помочь вам отпарсить интернет-магазин Desigual.com и получить данные и товарах и ценах представленного там ассортимента.

Примерное количество товаров: 1000
Примерное количество запросов: 2500
Рекомендуемый план подписки: Free

ВНИМАНИЕ! Количество запросов может превышать количество товаров, потому что данные о вариациях, изображениях и др. могут парсится используя запросы к дополнительным ресурсам. Также часть данных о товаре может доставляться с помощью XHR запросов, что также увеличивает общее количество необходимых запросов.

Как пользоваться парсером информации о товарах и ценах магазина Desigual.com

Для использования парсера информации с сайта магазина Desigual вы должны иметь учетную запись в нашем сервисе Diggernaut.

  1. Пройдите по этой ссылке для регистрации в сервисе Diggernaut
  2. После регистрации и подтверждения email адреса войдите в свою учетную запись
  3. Создайте проект с любый именем и описанием, если вы не знаете как, обратитесь к нашей документации
  4. Войдите во вновь созданный проект и создайте в нем диггер с любым именем, если вы не знаете как, обратитесь к нашей документации
  5. Скопируйте в буфер обмена приведенный ниже сценарий диггера и вставьте его в созданный вами диггер, если вы не знаете как, обратитесь к нашей документации
  6. Переключите режим работы диггера с Debug на Active, если вы не знаете как, обратитесь к нашей документации
  7. Запустите ваш диггер и дождитесь окончания его работы, если вы не знаете как, обратитесь к нашей документации
  8. Скачайте собранный набор данных в нужном вам формате, если вы не знаете как, обратитесь к нашей документации

В дальнейшем вы можете установить расписание для запуска вашего парсера и забирать информацию регулярно.

Сценарий парсера

---
config:
    debug: 2
    agent: Firefox
do:
- walk:
    to: http://www.desigual.com/en_US
    do:
    - find:
        path: .menu-desktop a
        do:
        - parse:
            attr: href
        - if:
            match: (highlights|collections)
            else:
            - normalize:
                routine: url
            - link_add:
                pool: main
- walk:
    to: links
    pool: main
    do:
    - sleep: 5
    - find:
        path: noscript:matches(load-more-btn-holder) 
        do:
        - parse
        - to_block
        - find:
            path: a
            do:
            - parse: 
                attr: href
            - normalize:
                routine: url
            - link_add:
                pool: main
    
    - find:
        path: .grid-product-item > a 
        do:
        - parse: 
            attr: href
        - normalize:
            routine: url
        - link_add:
            pool: sub
- walk:
    to: links
    pool: sub
    do:
    - find:
        path: body[b2c-is-error-page="false"]
        do:
        - find:
            in: doc
            path: html
            do:
            - sleep: 5
            - variable_clear: colorid
            - variable_clear: productid
            - variable_clear: sdescr
            - object_new: product
            - find:
                path: head
                do:
                - eval:
                    routine: js
                    body: '(function (){var d = new Date(); return d.toISOString()})();'
                - object_field_set:
                    object: product
                    field: date
                - static_get: url
                - object_field_set:
                    object: product
                    field: url
                - register_set: 'Desigual'
                - object_field_set:
                    object: product
                    field: brand
                - find:
                    path: meta[name="description"]
                    do:
                    - parse
                    - space_dedupe
                    - trim
                    - if:
                        match: (\S)
                        do:
                        - object_field_set:
                            object: product
                            field: description
            - find: 
                path: .breadcrumb a
                slice: 2:-1
                do: 
                - parse
                - space_dedupe
                - trim
                - if:
                    match: (\S)
                    do:
                    - object_field_set:
                        object: product
                        field: categories
                        joinby: "|"
            - find:
                path: .product-name
                do:
                - parse
                - space_dedupe
                - trim
                - if:
                    match: (\S)
                    do:
                    - object_field_set:
                        object: product
                        field: name
            - find: 
                path: .product-price
                do: 
                - parse:
                    filter:
                        - (\d+\.?\d*)
                - if:
                    match: (\d)
                    do:
                    - object_field_set:
                        object: product
                        field: price
                        type: float
                    - register_set: USD
                    - object_field_set:
                        object: product
                        field: currency
            - find:
                path: script:matches(pdp.productDetail)
                do:
                - parse:
                    filter:
                        - pdp.productDetail\s*=\s*(\{.+\})
                - normalize:
                    routine: json2xml
                - to_block
                - find: 
                    path: body_safe > compositions > description 
                    do: 
                    - parse
                    - space_dedupe
                    - trim
                    - if:
                        match: (\S)
                        do:
                        - object_field_set:
                            object: product
                            field: description
                        
                        
                - find: 
                    path: body_safe > productid 
                    do: 
                    - parse
                    - variable_set: productid
                    - object_field_set:
                        object: product
                        field: sku
                - find:
                    path: items > colorid
                    do:
                    - parse
                    - variable_set: colorid
                    - register_set: http://www.desigual.com/api/v2/amplience/pdp/<%productid%><%colorid%>?colorId=<%colorid%>&productId=<%productid%>&locale=en_US&storeId=store_us_web
                    - walk:
                        to: value
                        do:
                        - variable_clear: h
                        - variable_clear: w
                        - variable_clear: iu
                        - find:
                            path: safe_image
                            do:
                            - find:
                                path: height
                                do: 
                                - parse
                                - variable_set: h
                            - find:
                                path: width
                                do:
                                - parse
                                - variable_set: w
                            - find:
                                path: url
                                do:
                                - parse
                                - variable_set: iu
                                - register_set: <%iu%>?w=<%w%>&h=<%h%>
                                - object_field_set:
                                    object: product
                                    field: images
                                    joinby: "|"
                - find: 
                    path: colorname 
                    do: 
                    - parse
                    - space_dedupe
                    - trim
                    - if:
                        match: (\S)
                        do:
                        - object_field_set:
                            object: product
                            field: variations
                            joinby: "|"
                - find: 
                    path: compositions > description
                    do: 
                    - parse
                    - space_dedupe
                    - trim
                    - if:
                        match: (\S)
                        do:
                        - variable_set: sdescr
                        - object_field_set:
                            object: product
                            field: description
            - object_save:
                name: product

Пример данных, собранных парсером с сайта Desigual.com

Ниже приведен пример датасета с несколькими товарами в формате JSON (для наглядности). Датасет может быть скачан и как CSV, XLSX, XML, и любой другой текстовый формат используя темплейтный подход.

[{
    "product": {
        "brand": "Desigual",
        "categories": "Woman|Apparel|Jackets & Coats",
        "currency": "USD",
        "date": "2018-01-11T21:40:14.412Z",
        "description": "Straight-cut high neck coat featuring a hood and embroidered details. Regular fit.",
        "images": "http://media.desigual.com/i/desigual/17WWEW75_4086?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEW75_4086_B?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEW75_4086_D?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEW75_4086_L?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEW75_4086_C?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEW75_4086_H?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEW75_4086_G?w=2000&h=3000",
        "name": "Coat Michelle",
        "price": 199,
        "sku": "17WWEW75",
        "url": "http://www.desigual.com/en_US/women/clothing/coats-jackets/prod-michelle-17WWEW75",
        "variations": "KAKI OSCURO|KAKI OSCURO"
    }
}
,{
    "product": {
        "brand": "Desigual",
        "categories": "Woman|Apparel|Jackets & Coats",
        "currency": "USD",
        "date": "2018-01-11T21:40:20.369Z",
        "description": "Long black quilted coat with faux fur with tone-on-tone details. Button and zipper fastening. Regular fit.",
        "images": "http://media.desigual.com/i/desigual/17WWEWJ7_3007?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_B?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_D?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_L?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_C?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_H?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_G?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_B?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_D?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_L?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_C?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_H?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_G?w=2000&h=3000",
        "name": "Coat Cecilia",
        "price": 119.98,
        "sku": "17WWEWJ7",
        "url": "http://www.desigual.com/en_US/women/clothing/coats-jackets/prod-cecilia-17WWEWJ7",
        "variations": "NEGRO|BORGOÑA|NEGRO"
    }
}
,{
    "product": {
        "brand": "Desigual",
        "categories": "Woman|Apparel|Jackets & Coats",
        "currency": "USD",
        "date": "2018-01-11T21:40:26.594Z",
        "description": "Women's red coat with floral details and soft fake brown fur on the collar.",
        "images": "http://media.desigual.com/i/desigual/17WWEWJ7_3007?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_B?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_D?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_L?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_C?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_H?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_3007_G?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_B?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_D?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_L?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_C?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_H?w=2000&h=3000|http://media.desigual.com/i/desigual/17WWEWJ7_2000_G?w=2000&h=3000",
        "name": "Coat Cecilia",
        "price": 119.98,
        "sku": "17WWEWJ7",
        "url": "http://www.desigual.com/en_US/women/clothing/coats-jackets/prod-cecilia-17WWEWJ7-3007",
        "variations": "BORGOÑA|BORGOÑA|NEGRO"
    }
}
,{
    "product": {
        "brand": "Desigual",
        "categories": "Woman|Apparel|Jackets & Coats",
        "currency": "USD",
        "date": "2018-01-11T21:40:33.007Z",
        "description": "Long green coat with floral detailing along the inside of the cuffs and thick fabric that'll keep you warm this winter.",
        "images": "http://media.desigual.com/i/desigual/67E20B4_4133?w=2000&h=3000|http://media.desigual.com/i/desigual/67E20B4_4133_B?w=2000&h=3000|http://media.desigual.com/i/desigual/67E20B4_4133_D?w=2000&h=3000|http://media.desigual.com/i/desigual/67E20B4_4133_L?w=2000&h=3000|http://media.desigual.com/i/desigual/67E20B4_4133_C?w=2000&h=3000|http://media.desigual.com/i/desigual/67E20B4_4133_H?w=2000&h=3000|http://media.desigual.com/i/desigual/67E20B4_4133_G?w=2000&h=3000",
        "name": "Coat Isabella",
        "price": 199,
        "sku": "67E20B4",
        "url": "http://www.desigual.com/en_US/women/clothing/coats-jackets/prod-isabel-la-67E20B4",
        "variations": "JUNE BUG|JUNE BUG"
    }
}]
Михаил Сисин Со-основатель облачного сервиса по сбору информации и парсингу сайтов Diggernaut. Работает в области сбора и анализа данных, а также разработки систем искусственного интеллекта и машинного обучения  более десяти лет.

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.