Alexander McQueen — был известным британским модным дизайнером и основал свой лейбл и модный дом. Этот парсер товаров онлайн магазина предназначен для сбора данных о товарах с флагманского интернет магазина модного дома alexandermcqueen.com.
Примерное количество товаров: 1000
Примерное количество запросов: 2300
Рекомендуемый план подписки: Free
ВНИМАНИЕ! Количество запросов может превышать количество товаров, потому что данные о вариациях, изображениях и др. могут парсится используя запросы к дополнительным ресурсам. Также часть данных о товаре может доставляться с помощью XHR запросов, что также увеличивает общее количество необходимых запросов.
Для его использования вы должны иметь учетную запись в нашем сервисе Diggernaut.
- Пройдите по этой ссылке для регистрации в сервисе Diggernaut
- После регистрации и подтверждения email адреса войдите в свою учетную запись
- Создайте проект с любый именем и описанием, если вы не знаете как, обратитесь к нашей документации
- Войдите во вновь созданный проект и создайте в нем диггер с любым именем, если вы не знаете как, обратитесь к нашей документации
- Скопируйте в буфер обмена приведенный ниже сценарий диггера и вставьте его в созданный вами диггер, если вы не знаете как, обратитесь к нашей документации
- Переключите режим работы диггера с Debug на Active, если вы не знаете как, обратитесь к нашей документации
- Запустите ваш диггер и дождитесь окончания его работы, если вы не знаете как, обратитесь к нашей документации
- Скачайте собранный набор данных в нужном вам формате, если вы не знаете как, обратитесь к нашей документации
В дальнейшем вы можете установить расписание для запуска вашего парсера и забирать информацию регулярно.
Сценарий парсера:
---
config:
debug: 2
agent: Firefox
do:
- walk:
to: http://www.alexandermcqueen.com/us/
do:
- find:
path: ul.level-1>li
do:
- variable_clear: cat1
- parse:
attr: id
- normalize:
routine: replace_matched
args:
shop_womenswear: Womens
shop_menswear: Mens
.+: ''
- variable_set: cat1
- find:
path: ul.level-2>li
do:
- variable_clear: cat2
- find:
path: a
slice: 0
do:
- parse
- space_dedupe
- trim
- variable_set: cat2
- find:
path: ul.level-3>li
do:
- variable_clear: cat3
- find:
path: a
slice: 0
do:
- parse
- space_dedupe
- trim
- variable_set: cat3
- parse:
attr: href
- space_dedupe
- trim
- if:
match: \w+
do:
- normalize:
routine: url
- walk:
to: value
do:
- find:
path: script:contains('yTos.navigation =')
do:
- parse:
filter: yTos\.navigation\s+\=\s+(.+)\;
- normalize:
routine: json2xml
- to_block
- find:
path: pathandqueryparsed:has(paramname:matches(^sitecode$))
do:
- find:
path: paramvalue
do:
- parse
- variable_set: sitecode
- find:
path: pathandqueryparsed:has(paramname:matches(^dept$))
do:
- find:
path: paramvalue
do:
- parse
- variable_set: department
- find:
path: pathandqueryparsed:has(paramname:matches(^season$))
do:
- find:
path: paramvalue
do:
- parse
- normalize:
routine: replace_substring
args:
\,: "%2C"
- variable_set: season
- find:
path: pathandqueryparsed:has(paramname:matches(^gender$))
do:
- find:
path: paramvalue
do:
- parse
- variable_set: gender
- find:
path: pathandqueryparsed:has(paramname:matches(^yurirulename$))
do:
- find:
path: paramvalue
do:
- parse
- variable_set: yurirulename
- walk:
to: http://www.alexandermcqueen.com/Search/RenderProducts?ytosQuery=true&department=<%department%>&gender=<%gender%>&season=<%season%>&yurirulename=<%yurirulename%>&page=1&productsPerPage=1000&suggestion=false&totalPages=1&partialLoadedItems=1000&siteCode=<%sitecode%>
do:
- find:
path: article>a
do:
- parse:
attr: href
filter: ^([^\#]+)
- walk:
to: value
do:
- sleep: 2
- find:
path: article.item
do:
- variable_clear: pid
- variable_clear: cid
- 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
- register_set: Alexander McQueen
- object_field_set:
object: product
field: brand
- find:
path: h2.modelName
do:
- parse
- space_dedupe
- trim
- object_field_set:
object: product
field: name
- find:
in: doc
path: meta[name="description"]
do:
- parse:
attr: content
- space_dedupe
- trim
- variable_set: desc
- find:
path: div.descriptionsContainer>div.EditorialDescription
do:
- parse
- space_dedupe
- trim
- variable_set: desc
- variable_get: desc
- object_field_set:
object: product
field: description
- find:
path: div.itemPriceContainer span.price
slice: 0
do:
- find:
path: span.currency
do:
- parse
- normalize:
routine: replace_matched
args:
\$: USD
- object_field_set:
object: product
field: currency
- find:
path: span.value
do:
- parse
- normalize:
routine: replace_substring
args:
- \,: ''
- \s+: ''
- object_field_set:
object: product
type: float
field: price
- find:
path: div.modelFabricColor>span.value
do:
- parse
- space_dedupe
- trim
- if:
match: \w+
do:
- variable_set: pid
- object_field_set:
object: product
field: sku
- variable_get: cat1
- if:
match: \w{2,}
do:
- object_field_set:
object: product
joinby: "|"
field: category
- variable_get: cat2
- if:
match: \w{2,}
do:
- object_field_set:
object: product
joinby: "|"
field: category
- variable_get: cat3
- if:
match: \w{2,}
do:
- object_field_set:
object: product
joinby: "|"
field: category
- find:
path: ul.alternativeImages>li>img
do:
- parse:
attr: srcset
- to_block
- split:
context: text
delimiter: \,\s*
- find:
path: div.splitted
slice: 0
do:
- parse:
filter: ^([^\s]+)
- object_field_set:
object: product
joinby: "|"
field: images
- find:
path: div.selectColor
slice: 0
do:
- variable_clear: cod10
- find:
in: doc
path: script:contains("yTos.navigation.itemData =")
do:
- parse:
filter: yTos\.navigation\.itemData\s+\=\s+(.+)\;
- normalize:
routine: json2xml
- to_block
- find:
path: cod10
do:
- parse
- space_dedupe
- trim
- variable_set: cod10
- walk:
to: http://www.alexandermcqueen.com/yTos/api/Plugins/ItemPluginApi/GetCombinationsAsync/?siteCode=<%sitecode%>&code10=<%cod10%>
do:
- find:
path: body_safe>colors
do:
- find:
path: description
do:
- parse
- space_dedupe
- trim
- if:
match: \w+
do:
- object_field_set:
object: product
joinby: "|"
field: variations
- object_save:
name: product
Ниже приведен пример датасета с несколькими товарами в формате JSON (для наглядности). Датасет может быть скачан и как CSV, XLSX, XML, и любой другой текстовый формат используя темплейтный подход.
[{
"product": {
"brand": "Alexander McQueen",
"category": "Shop by|Sale",
"currency": "USD",
"date": "2017-12-05T17:25:41.800Z",
"description": "Sleeveless black leather midi-length dress, in raw cut panels whip-stitched together. Featuring hand-applied, silver-plated metal eyelets, which are hand-laced with multicolored leather laces, left long as decorative fringe.",
"images": "https://cdn.yoox.biz/items/34/34767065be_18_g_f.jpg|https://cdn.yoox.biz/items/34/34767065be_18_g_r.jpg|https://cdn.yoox.biz/items/34/34767065be_18_g_d.jpg|https://cdn.yoox.biz/items/34/34767065be_18_g_e.jpg|https://cdn.yoox.biz/items/34/34767065be_18_g_a.jpg",
"name": "Whip-Stitched Leather Dress",
"price": 5699,
"sku": "493349Q5HLU1666",
"url": "http://www.alexandermcqueen.com/us/alexandermcqueen/long-dress_cod34767065be.html",
"variations": "BLACK"
}
}
,{
"product": {
"brand": "Alexander McQueen",
"category": "Shop by|Sale",
"currency": "USD",
"date": "2017-12-05T17:25:45.343Z",
"description": "Long-sleeved, crew neck BouclГ© knit dress with multicolored leather laces, laced through hand-applied silver-plated metal eyelets.",
"images": "https://cdn.yoox.biz/items/34/34767074av_18_g_f.jpg|https://cdn.yoox.biz/items/34/34767074av_18_g_r.jpg|https://cdn.yoox.biz/items/34/34767074av_18_g_d.jpg|https://cdn.yoox.biz/items/34/34767074av_18_g_e.jpg|https://cdn.yoox.biz/items/34/34767074av_18_g_a.jpg",
"name": "BouclГ© Knit Long Dress with Leather Lacing",
"price": 3179,
"sku": "493382Q1WHI1666",
"url": "http://www.alexandermcqueen.com/us/alexandermcqueen/long-dress_cod34767074av.html",
"variations": "BLACK"
}
}
,{
"product": {
"brand": "Alexander McQueen",
"category": "Shop by|Sale",
"currency": "USD",
"date": "2017-12-05T17:25:48.261Z",
"description": "Long ivory plissГ© knit dress with extra fine merino wool piping in red, finished with a decorative lurex cross stitch that is left long as frayed fringe on hem and shoulders. Roll neck and invisible zipper on center back.",
"images": "https://cdn.yoox.biz/items/34/34767073al_18_g_f.jpg|https://cdn.yoox.biz/items/34/34767073al_18_g_r.jpg|https://cdn.yoox.biz/items/34/34767073al_18_g_d.jpg|https://cdn.yoox.biz/items/34/34767073al_18_g_e.jpg|https://cdn.yoox.biz/items/34/34767073al_18_g_a.jpg",
"name": "Long Knit Dress With Roll Neck",
"price": 2444,
"sku": "493374Q1WHC9082",
"url": "http://www.alexandermcqueen.com/us/alexandermcqueen/long-dress_cod34767073al.html",
"variations": "IVORY/RED"
}
}
,{
"product": {
"brand": "Alexander McQueen",
"category": "Shop by|Sale",
"currency": "USD",
"date": "2017-12-05T17:25:51.193Z",
"description": "Long black plissГ© knit dress with extra fine merino wool piping in red, finished with a decorative lurex cross stitch that is left long as frayed fringe. Featuring a roll neck and long voluminous balloon sleeves with an invisible zipper on center back.",
"images": "https://cdn.yoox.biz/items/34/34767069qs_18_g_f.jpg|https://cdn.yoox.biz/items/34/34767069qs_18_g_r.jpg|https://cdn.yoox.biz/items/34/34767069qs_18_g_d.jpg|https://cdn.yoox.biz/items/34/34767069qs_18_g_e.jpg|https://cdn.yoox.biz/items/34/34767069qs_18_g_a.jpg",
"name": "Long-Sleeved Knit Dress With Roll Neck",
"price": 2669,
"sku": "493373Q1WHB1056",
"url": "http://www.alexandermcqueen.com/us/alexandermcqueen/long-dress_cod34767069qs.html",
"variations": "BLACK/RED"
}
}]