Python 3.x 使用xpath仅提取作为父节点一部分的文本
我们如何仅选择和提取仅属于父节点一部分的文本。这是我正在处理的HTML。我只需要使用xpath提取“$1950”。当我选择父节点并提取其文本内容时,我也会得到其子节点的文本内容,但我只需要父节点的文本内容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
<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()