Python 3.x 使用xpath仅提取作为父节点一部分的文本

Python 3.x 使用xpath仅提取作为父节点一部分的文本,python-3.x,xpath,lxml,Python 3.x,Xpath,Lxml,我们如何仅选择和提取仅属于父节点一部分的文本。这是我正在处理的HTML。我只需要使用xpath提取“$1950”。当我选择父节点并提取其文本内容时,我也会得到其子节点的文本内容,但我只需要父节点的文本内容 <span class="rentRollup"> <span class="longText">3 Bedrooms</span> <span class="shortText">3 Beds</span> $1,950

我们如何仅选择和提取仅属于父节点一部分的文本。这是我正在处理的HTML。我只需要使用xpath提取“$1950”。当我选择父节点并提取其文本内容时,我也会得到其子节点的文本内容,但我只需要父节点的文本内容

<span class="rentRollup">

 <span class="longText">3 Bedrooms</span>
 <span class="shortText">3 Beds</span>
 $1,950

</span>

下面是XPath表达式

//*[contains(*/text(), '3 Bedrooms')]/text()

将仅选择作为感兴趣的父节点的直接子节点的文本节点。但仍有空白噪声需要消除。

尝试以下方法:在
打印(响应)
之后,将所有内容替换为:

tree = html.fromstring(response.content)
name=tree.xpath("//span[@class='rentRollup']/text()")
name[2].strip()
输出:

‘1950元’


html代码的结构是否总是使您的目标字符串(
$1950
在本例中)位于具有两个子项的
span
标记内?是的,总是相同的结构。
tree = html.fromstring(response.content)
name=tree.xpath("//span[@class='rentRollup']/text()")
name[2].strip()