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

Бесплатный парсер интернет-магазина Betsey Johnson

Бесплатный парсер интернет-магазина Betsey Johnson

Бетси Джонсон – американский модельер, легко узнаваемая в мире моды своими причудливыми женскими дизайнами. В ее интернет-магазине вы можете найти одежду, обувь, аксессуары и ювелирные украшения. Парсер поможет вам собрать информацию о товарах, представленных в интернет-магазине betseyjohnson.com

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

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

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

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

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

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

---
config:
    debug: 2
    agent: Firefox
do:
- walk:
    to: http://www.betseyjohnson.com/
    do:
    - find: 
        path: .off > a 
        do: 
        - parse:
            attr: href
        - normalize:
            routine: replace_substring
            args:
                '\s*#': ''
        
        - normalize:
            routine: url
        - link_add:
            pool: main
- walk:
    to: links
    pool: main
    do:
    - find: 
        path: .categoryNav a
        do: 
        - parse:
            attr: href
        - walk:
            to: value
            do:
            - find: 
                path: .viewAll 
                do: 
                - parse:
                    attr: data-href
                - normalize:
                    routine: url
                - walk:
                    to: value
                    do:
                    - find: 
                        path: .mainImage 
                        do: 
                        - parse:
                            attr: href
                            filter: 
                                - (.+)\?
                                - (.+)
                        - normalize:
                            routine: url
                        - link_add:
                            pool: sub
            - find: 
                path: .mainImage 
                do: 
                - parse:
                    attr: href
                    filter: 
                        - (.+)\?
                        - (.+)
                - normalize:
                    routine: url
                - link_add:
                    pool: sub
- walk:
    to: links
    pool: sub
    do:
    - object_new: product
    - find: 
        in: doc
        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
    - find: 
        path: 'meta[itemprop="productID"]'
        do: 
        - parse:
            attr: content
        - space_dedupe
        - trim
        - object_field_set:
            object: product
            field: sku
    - find: 
        path: .breadcrumb a 
        do: 
        - parse
        - space_dedupe
        - trim
        - normalize:
            routine: lower
        - object_field_set:
            object: product
            field: category
            joinby: "|"
    - find: 
        path: 'select.COLOR_NAME > option'
        do: 
        - parse:
            attr: value
        - space_dedupe
        - trim
        - if:
            match: (\S)
            do:
            - object_field_set:
                object: product
                field: variations
                joinby: "|"
    - find: 
        path: .item-name 
        do: 
        - parse
        - space_dedupe
        - trim
        - object_field_set:
            object: product
            field: name
    - find: 
        path: .productPrice 
        do: 
        - parse:
            filter:
                - ^\s*\$\s*(\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(variantMatrices)
        do: 
        - parse:
            filter: 
                - \/\/var\s*thumbsAndStuff\s*=\s*(.+);\s* 
        - normalize:
            routine: json2xml
        - to_block
        - find:
            path: alts
            do:
            - parse
            - walk:
                to: http://www.betseyjohnson.com/scene7_proxy.jsp?cb=&req=set,json,utf-8&id=<%register%>
                do:
                - find:
                    path: body
                    do:
                    - parse
                    - normalize:
                        routine: replace_substring
                        args:
                            - \/\*jsonp\*\/\s*: ''
                            - s7jsonResponse\(: ''
                            - \}\}\}\,\"\"\)\;: '}}}'
                    - normalize:
                        routine: unescape_html
                    - normalize:
                        routine: json2xml
                    - to_block
                    - find: 
                        path: item > i > n 
                        do: 
                        - parse
                        - register_set: http://s7d9.scene7.com/is/image/<%register%>?scl=1
                        - object_field_set:
                            object: product
                            field: images
                            joinby: "|"
    - find: 
        path: .detailsWrap > p
        do: 
        - parse
        - space_dedupe
        - trim
        - object_field_set:
            object: product
            field: description
    - find: 
        path: meta[itemprop="brand"] 
        do: 
        - parse:
            attr: content
        - space_dedupe
        - trim
        - object_field_set:
            object: product
            field: brand
    - object_save:
        name: product

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

[{
    "product": {
        "brand": "Betsey Johnson",
        "category": "accessories|all accessories|gifty goodies",
        "currency": "USD",
        "date": "2017-12-07T18:45:38.519Z",
        "description": "This pen is an extra special gift. Its candy-hued coloring gets extra girly flair with a soft, feathery accent.",
        "images": "http://s7d9.scene7.com/is/image/BetseyJohnson/HOLIDAY-GIVING-BUNNY-PEN_PINK?scl=1|http://s7d9.scene7.com/is/image/BetseyJohnson/HOLIDAY-GIVING-BUNNY-PEN_PINK_PACKAGED?scl=1",
        "name": "HOLIDAY GIVING BUNNY PEN",
        "price": 35,
        "sku": "247714",
        "url": "https://www.betseyjohnson.com/product/HOLIDAY-GIVING-BUNNY-PEN/247714.uts",
        "variations": "PINK"
    }
}
,{
    "product": {
        "brand": "Betsey Johnson",
        "category": "accessories|all accessories|gifty goodies",
        "currency": "USD",
        "date": "2017-12-07T18:45:40.633Z",
        "description": "This black cat pen will bring your favorite friend some good luck! Its colorful, oil slick surface is topped off by a feathery black cat embellishment.",
        "images": "http://s7d9.scene7.com/is/image/BetseyJohnson/HOLIDAY-GIVING-BLACK-CAT-PEN_BLACK?scl=1|http://s7d9.scene7.com/is/image/BetseyJohnson/HOLIDAY-GIVING-BLACK-CAT-PEN_BLACK_PACKAGED?scl=1",
        "name": "HOLIDAY GIVING BLACK CAT PEN",
        "price": 35,
        "sku": "247715",
        "url": "https://www.betseyjohnson.com/product/HOLIDAY-GIVING-BLACK-CAT-PEN/247715.uts",
        "variations": "BLACK"
    }
}
,{
    "product": {
        "brand": "Betsey Johnson",
        "category": "accessories|all accessories|gifty goodies",
        "currency": "USD",
        "date": "2017-12-07T18:45:41.840Z",
        "description": "This colorful parrot pen is the perfect way to add some color to the holiday season! Its pastel surface is accented by a vivid feather plump on an opal parrot.",
        "images": "http://s7d9.scene7.com/is/image/BetseyJohnson/HOLIDAY-GIVING-PARROT-PEN_MULTI?scl=1|http://s7d9.scene7.com/is/image/BetseyJohnson/HOLIDAY-GIVING-PARROT-PEN_MULTI_PACKAGING?scl=1",
        "name": "HOLIDAY GIVING PARROT PEN",
        "price": 35,
        "sku": "247716",
        "url": "https://www.betseyjohnson.com/product/HOLIDAY-GIVING-PARROT-PEN/247716.uts",
        "variations": "MULTI"
    }
}]
Михаил Сисин Со-основатель облачного сервиса по сбору информации и парсингу сайтов Diggernaut. Работает в области сбора и анализа данных, а также разработки систем искусственного интеллекта и машинного обучения  более десяти лет.