我尝试刮过一个链接(https://www.century21.com/real-estate/rock-spring-ga/LCGAROCKSPRING/)。我想从中提取“床”数据。由于其中一些房屋有一些空的细节,因此仅提取了很少的“床”细节。但我想了解所有细节。如果不存在,则应显示“ NaN”或类似内容。另一个问题是我已经检查了这个标签:



<div class="property-beds">
            <strong>2</strong> beds
         </div>





我使用xpath命令提取“ 2张病床”。 nOT“ 2张病床”仅显示“病床”。所以我用“ |”统一这两个要素。

response.xpath('//div[@class="property-beds"]/strong/text() | //div[@class="property-beds"]/text()']


这给了我正确的输出,但问题是它在2条单独的线中显示结果(一条线中有2条,另一条线中有床)。如何在一行中显示?

最佳答案

您可以在父元素上使用string()来提取元素和所有子节点的文本:

In [10]: root.xpath('string(//div[@class="property-beds"])')
Out[10]: '2 beds'


如果您有多个元素,则必须遍历与//div[@class="property-beds"]匹配的元素,然后再执行elem.xpath('string()')

08-25 05:23