Scrapy Xpath根据容器中带有文本的标记获取文本

时间:2017-11-11 15:24:45

标签: python xpath scrapy

我有这段代码:

<div class="col-md-12">
    <strong>Ingredients:</strong> TOMATOES (TOMATOES AND FIRE ROASTED TOMATOES, TOMATO JUICE, CITRIC ACID, CALCIUM CHLORIDE), WHITE WINE VINEGAR, CARROTS. <span style="font-style:italic">Date Available</span>: 07/14/2017&nbsp;&nbsp; <span style="font-style:italic">Date Last Updated by Company</span>: 07/14/2017
</div>

我想要提取的是使用Scrapy和Xpath的成分列表。唯一的识别构造是包含

的div
<strong>Ingredients:</strong>

但我无法弄清楚如何根据这些规则提取成分。

2 个答案:

答案 0 :(得分:2)

您正在寻找的文字可以被识别为 直接跟随strong元素的 ,这将转换为以下XPath表达式:

query = "//div/strong[.='Ingredients:']/following-sibling::text()[1]"

没有谓词{{​​1}},查询就会返回&#39;日期可用&#39;和&#39;日期最后更新&#39;同样。

答案 1 :(得分:0)

如果有用,请尝试一下。

response.xpath('//strong[.="Ingredients:"]/following-sibling::text()').extract()