PyR*_*Rar 5 python regex scrapy
我想检索的值var modelCode。我做了这样的正则表达式函数,但它根本不起作用。我已经发布了以下页面的结构,请问有人可以帮我吗?
regex2 = re.compile(r'"var modelCode"\s*:\s*(.+?\})', re.DOTALL)
source_json3 = response.xpath("//script[contains(., 'if(pageTrackName == 'product detail' || pageTrackName == 'generic product details')')]/text()").re_first(regex2)
source_json3 = re.sub(r'//[^\n]+', "", source_json3)
Run Code Online (Sandbox Code Playgroud)
页面结构:
var pageTrackName = digitalData.page.pageInfo.pageTrack;
if(pageTrackName == "product detail" || pageTrackName == "generic product details"){
var modelCode = "GT-P5100TSABTU";
var displayName = "Galaxy Tab 2 (10.1, 3G)".replace(/(<([^>]+)>)/gi, "");
digitalData.product.model_code = modelCode;
digitalData.product.displayName = displayName;
pageName += ":" + modelCode;
Run Code Online (Sandbox Code Playgroud)
}
我想该代码位于<script>标签内。在这种情况下,您可以使用:
model_code = response.xpath('//script').re_first('modelCode.*?"(.*)"')
Run Code Online (Sandbox Code Playgroud)
一些技巧:
.re_first()/ .re()。parsel有关(scrapy从 xml 中提取数据的库)的更多信息: https://parsel.readthedocs.io/en/latest/usage.html| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |