Javascript 在<;脚本>;用xpath标记
从这个标签:Javascript 在<;脚本>;用xpath标记,javascript,xpath,scrapy,Javascript,Xpath,Scrapy,从这个标签: <script type = "text/javascript" > dataLayer.push({ "pageType": "productPage", "ecommerce": { "currencyCode": "EUR", "detail": { "actionField": {"list": "Detail", "action": "detail"}, "products
<script type = "text/javascript" > dataLayer.push({
"pageType": "productPage", "ecommerce": {
"currencyCode": "EUR",
"detail": {
"actionField": {"list": "Detail", "action": "detail"},
"products": [{
"name": "Desodorante Spray Alien",
"id": "10483558",
"price": "34,95",
"brand": "MUGLER",
"category": "higiene\/desodorantes",
"variant": "100 ML",
"dimension5": "Mucho stock",
"dimension6": "Unisex",
"dimension7": "CLARINS SPAIN, S.A",
"dimension8": "No",
"dimension9": "",
"metric2": 1
}]
},
"impressions": [{
"name": "Angel men recarga Eau de Toilette",
"id": "10059432",
"price": "47.95",
"brand": "MUGLER",
"category": "perfumes_hombre_edt",
"variant": "100 ML ",
"list": "you may want",
"position": 1
}, {
"name": "Angel men rubber flask Eau de Toilette",
"id": "10351154",
"price": "42.95",
"brand": "MUGLER",
"category": "perfumes_hombre_edt",
"variant": "50 ML ",
"list": "you may want",
"position": 2
}, {
"name": "Alien Shower Milk",
"id": "10483565",
"price": "26.00",
"brand": "MUGLER",
"category": "higiene_geles",
"variant": "200 ML ",
"list": "you may want",
"position": 3
}, {
"name": "Amen Desodorante en Stick",
"id": "10532706",
"price": "21.95",
"brand": "MUGLER",
"category": "hombre_desodorantes",
"variant": "75 ML ",
"list": "you may want",
"position": 4
}]
}
});
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function () {
retailrocket.productsGroup.post({
"groupId": 10483558,
"name": "Desodorante Spray Alien",
"price": 34.95,
"pictureUrl": "https://ima.douglas.es/img/1467/desodorante_spray_alien-0-.png",
"url": "https://douglas.es/p/mugler/desodorante_spray_alien",
"isAvailable": true,
"categoryPaths": ["Higiene/Corporal", "Corporal", "Corporal/Higiene", "Higiene", "Higiene/Desodorante", "Marca/Mugler"],
"description": "El elixir de feminidad y de sensualidad del Eau de Parfum Alien en su versión desodorante en spray. Déjate envolver con los mismos acordes de la fragancia.",
"vendor": "MUGLER",
"products": {
"10483558": {
"isAvailable": true,
"name": "Desodorante Spray Alien",
"size": "100",
"url": "https://douglas.es/p/mugler/desodorante_spray_alien",
"pictureUrl": "https://ima.douglas.es/img/1467/desodorante_spray_alien-0-.png",
"price": 34.95,
"oldPrice": 34.95,
"params": {}
}
},
"params": {"medida": "ML", "subTitle": "Todo tipo de piel"},
"model": "Desodorante Spray Alien",
"typePrefix": "higiene_desodorantes",
"oldPrice": 34.95
});
rrApi.groupView([10483558]);
});
App.page.webshop = "DOU";
App.page.warehouse = ["ALM"];
App.page.codPostal = "";
</script>
dataLayer.push({
“页面类型”:“产品页面”,“电子商务”:{
“货币代码”:“欧元”,
“细节”:{
“actionField”:{“list”:“Detail”,“action”:“Detail”},
“产品”:[{
“名称”:“脱臭喷雾剂外星人”,
“id”:“10483558”,
“价格”:“34,95”,
“品牌”:“穆勒”,
“类别”:“higiene\/脱臭剂”,
“变体”:“100毫升”,
“尺寸5”:“木荷库存”,
“尺寸6”:“男女通用”,
“第七维度”:“西班牙号角,S.A”,
“尺寸8”:“否”,
“尺寸9”:“,
“metric2”:1
}]
},
“印象”:[{
“名称”:“天使男装淡香水”,
“id”:“10059432”,
“价格”:“47.95”,
“品牌”:“穆勒”,
“类别”:“香水”,
“变体”:“100毫升”,
“列表”:“您可能需要”,
“职位”:1
}, {
“名称”:“天使男式橡胶瓶淡香水”,
“id”:“10351154”,
“价格”:“42.95”,
“品牌”:“穆勒”,
“类别”:“香水”,
“变体”:“50毫升”,
“列表”:“您可能需要”,
“职位”:2
}, {
“名称”:“外星人沐浴乳”,
“id”:“10483565”,
“价格”:“26.00”,
“品牌”:“穆勒”,
“类别”:“higiene_geles”,
“变体”:“200毫升”,
“列表”:“您可能需要”,
“职位”:3
}, {
“名称”:“阿门·德索多兰特·恩斯蒂克”,
“id”:“10532706”,
“价格”:“21.95”,
“品牌”:“穆勒”,
“类别”:“hombre_desodorantes”,
“变体”:“75毫升”,
“列表”:“您可能需要”,
“职位”:4
}]
}
});
(window[“rrApiOnReady”]=window[“rrApiOnReady”]| |[])。推送(函数(){
retailrocket.productsGroup.post({
“组ID”:10483558,
“名称”:“脱臭喷雾剂外星人”,
“价格”:34.95,
“pictureUrl”:https://ima.douglas.es/img/1467/desodorante_spray_alien-0-.png",
“url”:”https://douglas.es/p/mugler/desodorante_spray_alien",
“isAvailable”:正确,
“分类路径”:[“Higiene/下士”,“下士”,“下士/Higiene”,“Higiene”,“Higiene/Desodorante”,“Marca/Mugler”],
“描述”:“席埃尔仙女德。
“卖方”:“穆勒”,
“产品”:{
"10483558": {
“isAvailable”:正确,
“名称”:“脱臭喷雾剂外星人”,
“大小”:“100”,
“url”:”https://douglas.es/p/mugler/desodorante_spray_alien",
“pictureUrl”:https://ima.douglas.es/img/1467/desodorante_spray_alien-0-.png",
“价格”:34.95,
“oldPrice”:34.95,
“参数”:{}
}
},
“params”:{“medida”:“ML”,“副标题”:“Todo tipo de piel”},
“型号”:“脱臭剂喷雾器”,
“类型前缀”:“higiene_desodorantes”,
“旧价格”:34.95
});
rrApi.groupView([10483558]);
});
App.page.webshop=“DOU”;
App.page.warehouse=[“ALM”];
App.page.codPostal=“”;
我需要访问不同功能的一些特定值(产品、产品.品牌、印象和印象.id)
我试图将其转换为json字典,但它是一个列表,它被转换为一个数组,我无法使用“name”值访问它
如何执行此操作?一个示例是,使用某个仅在此脚本中存在的唯一关键字选择脚本。一旦获得该值,您可以先使用
re_
获得所需的值。以此为例:
product_css = "script:contains('productPage')::text"
regex = 'name": "(.+?)"'
product_name = response.css(product_count_css).re_first(regex)
这将提取第一个名字。您可以使用
re
进一步调整它。祝你好运 您的代码在一行上,很难阅读。请编辑您的帖子以突出显示相关部分。重复的xpath/css无法完成此操作。。。您需要使用regexb Umair提取所需的值,您对如何提取有任何线索吗?@Georgi我已经尝试了'response.xpath(//script[contains(,'dataLayer.push')]/text()).re_first('dataLayer.push(.*)”),但我收到了一个空结果