{"id":454,"date":"2018-01-14T17:11:20","date_gmt":"2018-01-14T17:11:20","guid":{"rendered":"https:\/\/www.diggernaut.ru\/blog\/?p=454"},"modified":"2019-01-11T17:19:28","modified_gmt":"2019-01-11T17:19:28","slug":"parsit-tovary-i-ceny-v-magazine-chanel","status":"publish","type":"post","link":"https:\/\/www.diggernaut.ru\/blog\/parsit-tovary-i-ceny-v-magazine-chanel\/","title":{"rendered":"\u041a\u0430\u043a \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0442\u043e\u0432\u0430\u0440\u044b \u0438 \u0446\u0435\u043d\u044b \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 Chanel"},"content":{"rendered":"<p>\u041d\u0430\u0448 \u043f\u0430\u0440\u0441\u0438\u043d\u0433-\u0441\u0435\u0440\u0432\u0438\u0441 Diggernaut \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043b\u0435\u0433\u043a\u043e \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0442\u043e\u0432\u0430\u0440\u044b \u0438 \u0446\u0435\u043d\u044b \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 chanel.com, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043d\u0438\u0436\u0435 \u043f\u0430\u0440\u0441\u0435\u0440. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Chanel \u0431\u044b\u043b\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u043e\u0433\u043e \u0432\u0435\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u044c\u0435\u0440\u043e\u043c \u041a\u043e\u043a\u043e \u0428\u0430\u043d\u0435\u043b\u044c, \u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0443\u0442\u0438\u043a \u0431\u044b\u043b \u043e\u0442\u043a\u0440\u044b\u0442 \u0432 1910 \u0433\u043e\u0434\u0443 \u0432 \u041f\u0430\u0440\u0438\u0436\u0435. \u0412 1924 \u0433\u043e\u0434\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0444\u044e\u043c\u0435\u0440\u0438\u0438. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Chanel \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u0438 \u043f\u0440\u043e\u0434\u0430\u0436\u0435 \u043e\u0434\u0435\u0436\u0434\u044b, \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u0432 \u0440\u043e\u0441\u043a\u043e\u0448\u0438, \u043f\u0430\u0440\u0444\u044e\u043c\u0435\u0440\u0438\u0438 \u0438 \u043a\u043e\u0441\u043c\u0435\u0442\u0438\u043a\u0438.<\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u0432:<\/strong> 1000<br><strong>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432:<\/strong> 1000<br><strong>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439 \u043f\u043b\u0430\u043d \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438:<\/strong> Free<\/p>\n<p><strong>\u0412\u041d\u0418\u041c\u0410\u041d\u0418\u0415!<\/strong> \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f\u0445, \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445 \u0438 \u0434\u0440. \u043c\u043e\u0433\u0443\u0442 \u043f\u0430\u0440\u0441\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c. \u0422\u0430\u043a\u0436\u0435 \u0447\u0430\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0442\u043e\u0432\u0430\u0440\u0435 \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e XHR \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0447\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/p>\n<h3>\u041a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u0441\u0435\u0440\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 Chanel<\/h3>\n<p>\u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0441 \u0441\u0430\u0439\u0442\u0430 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0435 Diggernaut.<\/p>\n<ol>\n<li>\u041f\u0440\u043e\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u044d\u0442\u043e\u0439 <a href=\"https:\/\/www.diggernaut.ru\/accounts\/signup\/\">\u0441\u0441\u044b\u043b\u043a\u0435 \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438<\/a> \u0432 \u0441\u0435\u0440\u0432\u0438\u0441\u0435 <a href=\"https:\/\/www.diggernaut.ru\">Diggernaut<\/a><\/li>\n<li>\u041f\u043e\u0441\u043b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f email \u0430\u0434\u0440\u0435\u0441\u0430 <a href=\"https:\/\/www.diggernaut.ru\/accounts\/login\/\">\u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u0432 \u0441\u0432\u043e\u044e \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c<\/a><\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u043b\u044e\u0431\u044b\u0439 \u0438\u043c\u0435\u043d\u0435\u043c \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u043a\u0430\u043a, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u043d\u0430\u0448\u0435\u0439 <a href=\"https:\/\/www.diggernaut.ru\/dev\/vebsayt-proekty-sozdanie-novogo-proekta.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a><\/li>\n<li>\u0412\u043e\u0439\u0434\u0438\u0442\u0435 \u0432\u043e \u0432\u043d\u043e\u0432\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0432 \u043d\u0435\u043c \u0434\u0438\u0433\u0433\u0435\u0440 \u0441 \u043b\u044e\u0431\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u043a\u0430\u043a, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u043d\u0430\u0448\u0435\u0439 <a href=\"https:\/\/www.diggernaut.ru\/dev\/vebsayt-proekty-sozdanie-diggera.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a><\/li>\n<li>\u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043d\u0438\u0436\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0434\u0438\u0433\u0433\u0435\u0440\u0430 \u0438 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0435\u0433\u043e \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0432\u0430\u043c\u0438 \u0434\u0438\u0433\u0433\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u043a\u0430\u043a, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u043d\u0430\u0448\u0435\u0439 <a href=\"https:\/\/www.diggernaut.ru\/dev\/vebsayt-proekty-redaktirovanie-diggera.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a><\/li>\n<li>\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0440\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0438\u0433\u0433\u0435\u0440\u0430 \u0441 Debug \u043d\u0430 Active, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u043a\u0430\u043a, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u043d\u0430\u0448\u0435\u0439 <a href=\"https:\/\/www.diggernaut.ru\/dev\/vebsayt-proekty-redaktirovanie-diggera.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a><\/li>\n<li>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0432\u0430\u0448 \u0434\u0438\u0433\u0433\u0435\u0440 \u0438 \u0434\u043e\u0436\u0434\u0438\u0442\u0435\u0441\u044c \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u043a\u0430\u043a, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u043d\u0430\u0448\u0435\u0439 <a href=\"https:\/\/www.diggernaut.ru\/dev\/vebsayt-proekty-zapusk-diggera.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a><\/li>\n<li>\u0421\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0432\u0430\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u043a\u0430\u043a, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u043d\u0430\u0448\u0435\u0439 <a href=\"https:\/\/www.diggernaut.ru\/dev\/vebsayt-proekty-dannye.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a><\/li>\n<\/ol>\n<p>\u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u0438 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e.<\/p>\n<h3>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043f\u0430\u0440\u0441\u0435\u0440\u0430<\/h3>\n<pre class=\"language-yaml line-numbers\"><code class=\"language-yaml\">---\nconfig:\n    debug: 2\n    agent: Firefox\ndo:\n- link_add:\n    pool: beauty\n    url:\n    - https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/fragrance-beauty-skincare-140910\n- walk:\n    to: links\n    pool: beauty\n    do:\n    - find:\n        path: a.product-link\n        do:\n        - parse:\n            attr: href\n        - if:\n            match: \\w+\n            do:\n            - normalize:\n                routine: url\n            - link_add:\n                pool: beauty\n    - find:\n        path: a:haschild(div.top_header[role=&quot;button&quot;])\n        do:\n        - parse:\n            attr: href\n        - if:\n            match: \\w+\n            do:\n            - normalize:\n                routine: url\n            - link_add:\n                pool: beauty\n    - find:\n        path: form.product_container ul.unstyled>li.img>a\n        do:\n        - parse:\n            attr: href\n        - if:\n            match: \\w+\n            do:\n            - normalize:\n                routine: url\n            - link_add:\n                pool: beautypages\n- walk:\n    to: links\n    pool: beautypages\n    do:\n    - sleep: 2\n    - find:\n        path: &#039;div#contentContainer&#039;\n        do:\n        - object_new: product\n        - eval:\n            routine: js\n            body: &#039;(function (){var d = new Date(); return d.toISOString()})();&#039;\n        - object_field_set:\n            object: product\n            field: date\n        - static_get: url\n        - object_field_set:\n            object: product\n            field: url\n        - find:\n            path: h1[itemprop=&quot;name&quot;]\n            do:\n            - parse\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w+\n                do:\n                - object_field_set:\n                    object: product\n                    field: name\n        - find:\n            path: div.cc-sku-selector-dropdown select>option\n            slice: 0\n            do:\n            - parse:\n                attr: value\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w+\n                do:\n                - object_field_set:\n                    object: product\n                    field: sku\n        - register_set: Chanel\n        - object_field_set:\n            object: product\n            field: brand\n        - find:\n            path: div.cc-product-options-price\n            do:\n            - find:\n                path: span[itemprop=&quot;priceCurrency&quot;]\n                do:\n                - parse:\n                    attr: content\n                - space_dedupe\n                - trim\n                - object_field_set:\n                    object: product\n                    field: currency\n            - find:\n                path: span[itemprop=&quot;price&quot;]\n                do:\n                - parse:\n                    filter: (\\d+\\.\\d+)\n                - space_dedupe\n                - trim\n                - object_field_set:\n                    object: product\n                    type: float\n                    field: price\n        - find:\n            path: div.cc-sku-selector-dropdown select>option\n            do:\n            - parse\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w{2,}\n                do:\n                - object_field_set:\n                    object: product\n                    joinby: &quot;|&quot;\n                    field: variations\n        - find:\n            in: doc\n            path: script:contains(&#039;window.__CC_STATE__&#039;)\n            do:\n            - parse:\n                filter: window\\.__CC_STATE__\\s*\\=\\s*(.+)\\;\n            - normalize:\n                routine: json2xml\n            - to_block\n            - find:\n                path: images src\n                do:\n                - parse\n                - if:\n                    match: \\w+\n                    do:\n                    - normalize:\n                        routine: url\n                    - object_field_set:\n                        object: product\n                        joinby: &quot;|&quot;\n                        field: images\n            - find:\n                path: product>description\n                slice: 0\n                do:\n                - parse\n                - to_block\n                - find:\n                    path: p\n                    slice: 1\n                    do:\n                    - parse\n                    - space_dedupe\n                    - trim\n                    - if:\n                        match: \\w+\n                        do:\n                        - object_field_set:\n                            object: product\n                            field: description\n        - find:\n            path: span.breadcrumb>a\n            do:\n            - parse\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w{2,}\n                do:\n                - object_field_set:\n                    object: product\n                    joinby: &quot;|&quot;\n                    field: categories\n        - object_save:\n            name: product\n- link_add:\n    pool: sun\n    url:\n    - https:\/\/www.chanel.com\/en_US\/fashion\/sunglasses\/products\/\n- walk:\n    to: links\n    pool: sun\n    do:\n    - find:\n        path: a.ui-pagination-next\n        do:\n        - parse:\n            attr: href\n        - if:\n            match: \\w+\n            do:\n            - normalize:\n                routine: url\n            - link_add:\n                pool: sun\n    - find:\n        path: ul.product-list>li\n        do:\n        - find:\n            path: li.item\n            slice: 0\n            do:\n            - find:\n                path: a\n                do:\n                - parse:\n                    attr: href\n                - if:\n                    match: \\w+\n                    do:\n                    - normalize:\n                        routine: url\n                    - link_add:\n                        pool: sunpages\n- walk:\n    to: links\n    pool: sunpages\n    do:\n    - sleep: 2\n    - find:\n        path: main[role=&quot;main&quot;]\n        do:\n        - variable_clear: pid\n        - object_new: product\n        - eval:\n            routine: js\n            body: &#039;(function (){var d = new Date(); return d.toISOString()})();&#039;\n        - object_field_set:\n            object: product\n            field: date\n        - static_get: url\n        - object_field_set:\n            object: product\n            field: url\n        - find:\n            path: h1.tt-1\n            do:\n            - parse\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w+\n                do:\n                - object_field_set:\n                    object: product\n                    field: name\n        - find:\n            path: input[name=&quot;pdt-sku&quot;]\n            do:\n            - parse:\n                attr: value\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w+\n                do:\n                - variable_set: pid\n                - object_field_set:\n                    object: product\n                    field: sku\n        - register_set: Chanel\n        - object_field_set:\n            object: product\n            field: brand\n        - find:\n            path: span[property=&quot;price&quot;]\n            do:\n            - parse:\n                filter: (\\d+)\n            - object_field_set:\n                object: product\n                type: float\n                field: price\n            - parse\n            - normalize:\n                routine: replace_matched\n                args:\n                    \\$: USD\n            - object_field_set:\n                object: product\n                field: currency\n        - find:\n            path: select[data-select=&quot;pdt-color&quot;]>option\n            do:\n            - parse\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w{2,}\n                do:\n                - object_field_set:\n                    object: product\n                    joinby: &quot;|&quot;\n                    field: variations\n        - find:\n            in: doc\n            path: meta[name=&quot;description&quot;]\n            do:\n            - parse:\n                attr: content\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w+\n                do:\n                - object_field_set:\n                    object: product\n                    field: description\n        - find:\n            path: div.breadcrumb>a\n            slice: 1:-2\n            do:\n            - parse\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w{2,}\n                do:\n                - object_field_set:\n                    object: product\n                    joinby: &quot;|&quot;\n                    field: categories\n        - walk:\n            to: https:\/\/www.chanel.com\/en_US\/fashion\/sunglasses\/pdpjson\/\/product\n            do:\n            - find:\n                path: script\n                do:\n                - parse\n                - normalize:\n                    routine: replace_substring\n                    args:\n                        ^window\\.: &#039;&#039;\n                - to_block\n                - parse\n                - eval:\n                    routine: js\n                    body: (function () {var ; return JSON.stringify(product);})();\n                - normalize:\n                    routine: json2xml\n                - to_block\n                - find:\n                    path: zoom\n                    do:\n                    - parse:\n                        filter: ^(\\S+)\n                    - if:\n                        match: \\w+\n                        do:\n                        - normalize:\n                            routine: url\n                        - object_field_set:\n                            object: product\n                            joinby: &quot;|&quot;\n                            field: images\n        - object_save:\n            name: product\n- link_add:\n    url:\n    - https:\/\/www.chanel.com\/en_US\/watches-jewelry\/fine-jewelry\/collections\n    - https:\/\/www.chanel.com\/en_US\/watches-jewelry\/watches\/collections\n- walk:\n    to: links\n    do:\n    - find:\n        path: div.product-item-wrapper>a\n        do:\n        - parse:\n            attr: href\n        - register_set: ?show=All\n        - walk:\n            to: value\n            do:\n            - find:\n                path: div.product-item-wrapper>a\n                do:\n                - parse:\n                    attr: href\n                - if:\n                    match: \\w+\n                    do:\n                    - normalize:\n                        routine: url\n                    - link_add:\n                        pool: pages\n- walk:\n    to: links\n    pool: pages\n    do:\n    - sleep: 2\n    - find:\n        path: &#039;main#page-content&#039;\n        do:\n        - variable_clear: pid\n        - object_new: product\n        - eval:\n            routine: js\n            body: &#039;(function (){var d = new Date(); return d.toISOString()})();&#039;\n        - object_field_set:\n            object: product\n            field: date\n        - static_get: url\n        - object_field_set:\n            object: product\n            field: url\n        - find:\n            path: dl>dt:contains(&quot;Name:&quot;)+dd\n            do:\n            - parse\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w+\n                do:\n                - object_field_set:\n                    object: product\n                    field: name\n        - find:\n            path: dl>dt:contains(&quot;Reference:&quot;)+dd\n            do:\n            - parse\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w+\n                do:\n                - variable_set: pid\n                - object_field_set:\n                    object: product\n                    field: sku\n        - register_set: Chanel\n        - object_field_set:\n            object: product\n            field: brand\n        - find:\n            path: product_price\n            do:\n            - parse\n            - object_field_set:\n                object: product\n                type: float\n                field: price\n            - register_set: USD\n            - object_field_set:\n                object: product\n                field: currency\n        - find:\n            in: doc\n            path: meta[name=&quot;description&quot;]\n            do:\n            - parse:\n                attr: content\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w+\n                do:\n                - object_field_set:\n                    object: product\n                    field: description\n        - find:\n            path: &#039;nav#breadcrumb>ul>li:not(.visually-hidden)>a&#039;\n            slice: 1:-1\n            do:\n            - parse\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w{2,}\n                do:\n                - object_field_set:\n                    object: product\n                    joinby: &quot;|&quot;\n                    field: categories\n        - find:\n            path: div.product-images figure>a\n            do:\n            - parse:\n                attr: href\n            - space_dedupe\n            - trim\n            - if:\n                match: \\w{2,}\n                do:\n                - normalize:\n                    routine: url\n                - object_field_set:\n                    object: product\n                    joinby: &quot;|&quot;\n                    field: images\n        - object_save:\n            name: product<\/code><\/pre>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0441\u0435\u0440\u043e\u043c \u0441 \u0441\u0430\u0439\u0442\u0430 Chanel<\/h3>\n<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON (\u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438). \u0414\u0430\u0442\u0430\u0441\u0435\u0442 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043a\u0430\u0447\u0430\u043d \u0438 \u043a\u0430\u043a CSV, XLSX, XML, \u0438 \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u0435\u043c\u043f\u043b\u0435\u0439\u0442\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434.<\/p>\n<pre><code class=\"language-js\">[{\n    &quot;product&quot;: {\n        &quot;brand&quot;: &quot;Chanel&quot;,\n        &quot;categories&quot;: &quot;Fragrance|Women|Allure Sensuelle&quot;,\n        &quot;currency&quot;: &quot;USD&quot;,\n        &quot;date&quot;: &quot;2017-12-27T12:44:54.948Z&quot;,\n        &quot;description&quot;: &quot;Like the charismatic, passionate presence of Gabrielle Chanel, ALLURE SENSUELLE is the modern, magnetic fragrance of a true, radiant and intense woman. The floral-soft-Oriental fragrance is revealed in a unique way on every woman \u0432\u0402\u201d because each woman has her own special allure.&quot;,\n        &quot;images&quot;: &quot;https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P129710\/S129710_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P129710\/S129720_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P129710\/S129730_XLARGE.jpg&quot;,\n        &quot;name&quot;: &quot;ALLURE SENSUELLE EAU DE PARFUM SPRAY&quot;,\n        &quot;price&quot;: 130,\n        &quot;sku&quot;: &quot;88316&quot;,\n        &quot;url&quot;: &quot;https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/fragrance-allure-sensuelle-allure-sensuelle-88314&quot;,\n        &quot;variations&quot;: &quot;3.4 FL. OZ.|1.7 FL. OZ.|1.2 FL. OZ.&quot;\n    }\n}\n,{\n    &quot;product&quot;: {\n        &quot;brand&quot;: &quot;Chanel&quot;,\n        &quot;categories&quot;: &quot;Makeup|Lips|Lipstick&quot;,\n        &quot;currency&quot;: &quot;USD&quot;,\n        &quot;date&quot;: &quot;2017-12-27T12:45:00.308Z&quot;,\n        &quot;description&quot;: &quot;The intensity of a lipstick, the shine of a lipgloss and the comfort of a lip balm \u0432\u0402\u201d all in one creamy yet lightweight formula.&quot;,\n        &quot;images&quot;: &quot;https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170202_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170206_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170208_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170212_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170214_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170216_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170218_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170217_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170222_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170224_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P170202\/S170227_XLARGE.jpg&quot;,\n        &quot;name&quot;: &quot;ROUGE COCO STYLO COMPLETE CARE LIPSHINE&quot;,\n        &quot;price&quot;: 37,\n        &quot;sku&quot;: &quot;141754&quot;,\n        &quot;url&quot;: &quot;https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/makeup-lipstick-rouge-coco-stylo-140392&quot;,\n        &quot;variations&quot;: &quot;217 PANORAMA - Limited Edition|218 SCRIPT|216 LETTRE|202 CONTE|227 ESQUISSE - Limited Edition|222 FICTION|206 HISTOIRE|208 ROMAN|214 MESSAGE|224 M\u0413\u2030MOIRE|212 RECIT&quot;\n    }\n}\n,{\n    &quot;product&quot;: {\n        &quot;brand&quot;: &quot;Chanel&quot;,\n        &quot;categories&quot;: &quot;Skincare|BY CATEGORY|Sun Protection&quot;,\n        &quot;currency&quot;: &quot;USD&quot;,\n        &quot;date&quot;: &quot;2017-12-27T12:45:04.800Z&quot;,\n        &quot;description&quot;: &quot;A breakthrough daily sunscreen that features an adaptive skincare technology for tailor-made defense from UVA and UVB rays, free radicals and pollution.&quot;,\n        &quot;images&quot;: &quot;https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P141836\/S141836_XLARGE.jpg&quot;,\n        &quot;name&quot;: &quot;UV ESSENTIEL Multi-Protection Daily Defense Sunscreen Anti-Pollution Broad Spectrum SPF 30&quot;,\n        &quot;price&quot;: 55,\n        &quot;sku&quot;: &quot;140249&quot;,\n        &quot;url&quot;: &quot;https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/skincare-sun-protection-uv-essentiel-140248&quot;,\n        &quot;variations&quot;: &quot;1 FL. OZ.&quot;\n    }\n}\n,{\n    &quot;product&quot;: {\n        &quot;brand&quot;: &quot;Chanel&quot;,\n        &quot;categories&quot;: &quot;Makeup|Eyes|Mascara&quot;,\n        &quot;currency&quot;: &quot;USD&quot;,\n        &quot;date&quot;: &quot;2017-12-27T12:45:09.444Z&quot;,\n        &quot;description&quot;: &quot;A high-precision waterproof mascara that achieves instant volume and intense colour in a single stroke.&quot;,\n        &quot;images&quot;: &quot;https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P194210\/S194210_XLARGE.jpg|https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/cms2export\/Site1Files\/P194210\/S194220_XLARGE.jpg&quot;,\n        &quot;name&quot;: &quot;LE VOLUME DE CHANEL WATERPROOF MASCARA&quot;,\n        &quot;price&quot;: 32,\n        &quot;sku&quot;: &quot;139065&quot;,\n        &quot;url&quot;: &quot;https:\/\/www.chanel.com\/en_US\/fragrance-beauty\/makeup-mascara-le-volume-de-chanel-waterproof-139064&quot;,\n        &quot;variations&quot;: &quot;10 NOIR|20 BRUN&quot;\n    }\n}]\n<\/code><\/pre>","protected":false},"excerpt":{"rendered":"<p>\u041d\u0430\u0448 \u043f\u0430\u0440\u0441\u0438\u043d\u0433-\u0441\u0435\u0440\u0432\u0438\u0441 Diggernaut \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043b\u0435\u0433\u043a\u043e \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0442\u043e\u0432\u0430\u0440\u044b \u0438 \u0446\u0435\u043d\u044b \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 chanel.com, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u043d\u0438\u0436\u0435 \u043f\u0430\u0440\u0441\u0435\u0440. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Chanel \u0431\u044b\u043b\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u043e\u0433\u043e \u0432\u0435\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u044c\u0435\u0440\u043e\u043c \u041a\u043e\u043a\u043e \u0428\u0430\u043d\u0435\u043b\u044c, \u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0443\u0442\u0438\u043a \u0431\u044b\u043b \u043e\u0442\u043a\u0440\u044b\u0442 \u0432 1910 \u0433\u043e\u0434\u0443 \u0432 \u041f\u0430\u0440\u0438\u0436\u0435. \u0412 1924 \u0433\u043e\u0434\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0444\u044e\u043c\u0435\u0440\u0438\u0438. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Chanel \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u0438 \u043f\u0440\u043e\u0434\u0430\u0436\u0435 [&hellip;]<\/p>","protected":false},"author":2,"featured_media":457,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39,40],"tags":[],"class_list":["post-454","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-besplatnye-parsery","category-parser-magazina"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/posts\/454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/comments?post=454"}],"version-history":[{"count":4,"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/posts\/454\/revisions"}],"predecessor-version":[{"id":915,"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/posts\/454\/revisions\/915"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/media\/457"}],"wp:attachment":[{"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/media?parent=454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/categories?post=454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diggernaut.ru\/blog\/wp-json\/wp\/v2\/tags?post=454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}