首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在XML树中搜索特定文本并提取下一个节点中的文本

在XML树中搜索特定文本并提取下一个节点中的文本
EN

Stack Overflow用户
提问于 2020-10-30 20:14:56
回答 1查看 124关注 0票数 3

试图从www.currys.co.uk那里抢走智能手表的重量。该网站并不遵循所有产品的相同结构,所以为了获得每个产品的权重,我尝试使用xpath的关键字搜索

代码语言:javascript
复制
//text()[contains(.,'Weight')]

问题出在代码中,我可以得到文本“contains”,但我想要得到的是下面的权重,它是权重的实际值:

代码语言:javascript
复制
<tbody>
 <tr>
   <th scope = "row">Weight</th>
   <td> 26.7 g</td>
 <tr>
<body>

我要找的是获取文本26.7 g。我试过使用下面的方法,但似乎不起作用:

代码语言:javascript
复制
//text()[contains(.,'Weight')]//td

有什么建议吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-30 20:20:15

您可以使用following-sibling::td

代码语言:javascript
复制
from lxml import etree


txt = '''<tbody>
 <tr>
   <th scope = "row">Weight</th>
   <td> 26.7 g</td>
 </tr>
</tbody>'''

root = etree.fromstring(txt)

for td in root.xpath('//th[contains(., "Weight")]/following-sibling::td'):
    print(td.text)

打印:

代码语言:javascript
复制
 26.7 g
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64608159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档