从scrapy的div类中提取文本

时间:2018-10-06 09:48:18

标签: python xpath scrapy

我正在使用python和scrapy。我想从div类内部的div标记中提取文本。例如:

 <div class="ld-header">
    <h1>2013 Gulfstream G650ER  for Sale</h1>
    <div id="header-price">Price - $46,500,000</div>
</div>

我已经从h1标签中提取了文本

result.xpath('//div[@class="ld-header"]/h1/text()').extract()

但我无法提取价格。我已经尝试过

'price': result.xpath('//div[@class="ld-header"]/div[@id="header-price"]/text()').extract()

2 个答案:

答案 0 :(得分:1)

有了ID,就不需要使用元素的完整路径。每个网页的ID是唯一的:

此Xpath:

//div[@id="header-price"]/text()

在给定XML上使用的将返回:

'Price - $46,500,000'

对于调试Xpath和CSS选择器,我总是发现使用在线检查器很有帮助(只需使用Google来找到一些建议)。

答案 1 :(得分:1)

尝试这个,你告诉我:)

price = [x.replace('Price - ', '').replace('$', '') for x in result.xpath('//div[@class="ld-header"]/h1/text()').extract()]

这是提取中所有项目内的“ for”循环,您可以在其中用“ replace()”方法替换所有不需要的信息。