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

Парсер товаров и цен для интернет-магазина Deb Shops

Парсер товаров и цен для интернет-магазина Deb Shops

Deb Shops — онлайн ритэйлер, ранее работавший как специализированная сеть ритэйл магазинов в США, продающий одежду и аксессуары для женщий под своей и другими торговыми марками.Компания базировалась в Филадельфии, Пенсильвания и главным образом обслуживала молодых девушек и женщин плюс-сайз в возрасте от 13 до 29 лет. На пике своего триумфа Deb Shops управлял 337 магазинами в 42 штатах. Со временим магазин стал продавать одежду исключительно размера плюс-сайз. Парсер товаров и цен позволит вам собрать информацию о всех товарах, представленных в интернет-магазине debshops.com.

Примерное количество товаров: 1700
Примерное количество запросов: 7000
Рекомендуемый план подписки: X-Small

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

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

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

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

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

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

---
config:
    debug: 2
    agent: Firefox
do:
- walk:
    to: http://www.debshops.com
    do:
    - find:
        path: a.topmenulink
        do:
        - parse:
            attr: href
        - space_dedupe
        - trim
        - if:
            match: \/category\/
            do:
            - normalize:
                routine: url
        - register_set: <%register%>/1/
        - link_add:
            pool: catalog
- walk:
    to: links
    pool: catalog
    do:
    - find:
        path: div.pull-right>table
        slice: 0
        do:
        - find:
            path: td>a
            do:
            - parse:
                attr: href
            - if:
                match: \d+
                do:
                - link_add:
                    pool: catalog
    - find:
        path: div.prdImg>a.imgList
        do:
        - parse:
            attr: href
        - normalize:
            routine: replace_substring
            args:
                _\d+$: ''
        - link_add:
            pool: pages
- walk:
    to: links
    headers:
        referer: ''
    pool: pages
    do:
    - sleep: 3
    - find:
        path: 'div#center'
        do:
        - variable_clear: pid
        - object_new: product
        - 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
        - find:
            path: span.price
            do:
            - parse:
                filter: ([0-9\.]+)
            - object_field_set:
                object: product
                type: float
                field: price
            - parse
            - normalize:
                routine: replace_matched
                args:
                    \$: USD
            - object_field_set:
                object: product
                field: currency
        - find:
            path: div.productstyleNew.visible-xs
            do:
            - parse:
                filter: (\d+)
            - variable_set: pid
            - object_field_set:
                object: product
                field: sku
        - find:
            path: div.productnameNew.visible-xs
            do:
            - parse
            - normalize:
                routine: replace_substring
                args:
                - \s*[[:space:]]+: ' '
                - ^\s+|\s+$: ''
            - object_field_set:
                object: product
                field: name
        - find:
            path: 'div#tab-description'
            do:
            - split:
                context: html
                delimiter: 
- find: path: div.splitted slice: 0 do: - parse - normalize: routine: replace_substring args: - \s*[[:space:]]+: ' ' - ^\s+|\s+$: '' - object_field_set: object: product field: description - find: path: ol.breadcrumb>li.active>a do: - parse - normalize: routine: replace_substring args: - \s*[[:space:]]+: ' ' - ^\s+|\s+$: '' - object_field_set: object: product joinby: "|" field: categories - walk: to: json: http://www.debshops.com/Products/ProductDetail.aspx/GetColors data: StyleId: <%pid%> do: - find: path: d do: - parse - to_block - find: path: img.colorthumb do: - parse: attr: alt - normalize: routine: replace_substring args: - \s*[[:space:]]+: ' ' - ^\s+|\s+$: '' - if: match: \w+ do: - object_field_set: object: product joinby: "|" field: variations - parse: attr: id - variable_set: cid - walk: to: json: http://www.debshops.com/Products/ProductDetail.aspx/GetImages data: Color_Id: <%cid%> do: - find: path: d do: - parse - to_block - find: path: img.productdetail_image_display do: - parse: attr: data-zoom-image - object_field_set: object: product joinby: "|" field: images - register_set: Debshops - object_field_set: object: product field: brand - object_save: name: product

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

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

[{
    "product": {
        "brand": "Debshops",
        "categories": "Plus Clothing|Casual",
        "currency": "USD",
        "date": "2018-01-11T18:09:37.840Z",
        "description": "Pretty little dress! A chic and cute shift dress featuring a floral print all throughout.",
        "images": "https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008507_010_1.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008507_010_2.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008507_010_3.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008507_010_4.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008507_010_5.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008507_060_1.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008507_060_2.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008507_060_3.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008507_060_4.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008507_060_5.jpg",
        "name": "Plus Size Floral Pocket Shift Dress",
        "price": 37.95,
        "sku": "1008507",
        "url": "http://www.debshops.com/PlusSize/Plus+Size+Floral+Pocket+Shift+Dress%7C1008507",
        "variations": "Grey|Mauve"
    }
}
,{
    "product": {
        "brand": "Debshops",
        "categories": "Plus Clothing|Leggings",
        "currency": "USD",
        "date": "2018-01-11T18:09:42.172Z",
        "description": "What you kneed in your wardrobe! Essential and sporty leggings featuring slits on the knees.",
        "images": "https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008546_001_1.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008546_001_2.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008546_001_3.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008546_001_4.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008546_003_1.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008546_003_2.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008546_003_3.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008546_003_4.jpg",
        "name": "Plus Size Knee Slit Leggings",
        "price": 19.95,
        "sku": "1008546",
        "url": "http://www.debshops.com/PlusSize/Plus+Size+Knee+Slit+Leggings%7C1008546",
        "variations": "Black|Charcoal"
    }
}
,{
    "product": {
        "brand": "Debshops",
        "categories": "Plus Clothing|Maxi",
        "currency": "USD",
        "date": "2018-01-11T18:09:46.052Z",
        "description": "Boho goddess! A stunning maxi dress featuring an elastic waist with a crochet inset.",
        "images": "https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008537_005_1.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008537_005_2.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008537_005_3.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008537_005_4.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008537_005_5.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008537_046_1.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008537_046_2.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008537_046_3.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008537_046_4.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008537_046_5.jpg",
        "name": "Plus Size Floral Crochet Waist Slit Maxi Dress",
        "price": 44.95,
        "sku": "1008537",
        "url": "http://www.debshops.com/PlusSize/Plus+Size+Floral+Crochet+Waist+Slit+Maxi+Dress%7C1008537",
        "variations": "Navy|Cream"
    }
}
,{
    "product": {
        "brand": "Debshops",
        "categories": "Plus Clothing|Casual",
        "currency": "USD",
        "date": "2018-01-11T18:09:49.935Z",
        "description": "Your cup of tee! A chic and trendy tee featuring floral embroidered short sleeves.",
        "images": "https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008472_007_1.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008472_007_2.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008472_007_3.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008472_007_4.jpg|https://s3-us-west-2.amazonaws.com/msrealness/ItemZoom/1008472_007_5.jpg",
        "name": "Plus Size Floral Embroidered Sleeve Tee",
        "price": 29.95,
        "sku": "1008472",
        "url": "http://www.debshops.com/PlusSize/Plus+Size+Floral+Embroidered+Sleeve+Tee%7C1008472",
        "variations": "Taupe"
    }
}]
Михаил Сисин Со-основатель облачного сервиса по сбору информации и парсингу сайтов Diggernaut. Работает в области сбора и анализа данных, а также разработки систем искусственного интеллекта и машинного обучения  более десяти лет.

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

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

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