在Python的Xpath中选择标记之间的文本

2024-04-16 06:08:12 发布

您现在位置:Python中文网/ 问答频道 /正文

<td width="250"> 10.03.1984 16:30 <br/> Lütfi Kırdar, İstanbul <br/> <br/> 47-38, 49-58, 8-10 </td>

我想获取“td”标签之间的所有文本。我的代码是mactarih=tree.xpath(“//tr//td[@width='250']//text()”)。但这是错误的

预期结果是: 文本=['10.03.1984 16:30','Lütfi K公司ırdar公司,İstanbul','47-38,49-58,8-10']


Tags: 代码text文本brtree公司标签width
1条回答
网友
1楼 · 发布于 2024-04-16 06:08:12

"My code is mactarih=tree.xpath("//tr//td[@width='250']//text()"). But it is wrong".

如果在返回空文本或换行符以及正确文本的意义上它是“错误的”,那么您可以使用normalize-space()来过滤只包含空格的文本:

mactarih=tree.xpath("//tr//td[@width='250']//text()[normalize-space()]")

快速测试:

>>> from lxml import etree
>>> raw = '''<td width="250">
... 10.03.1984 16:30
... <br/>
... Lütfi Kırdar, İstanbul
... <br/>
... <br/>
... 47-38, 49-58, 8-10
... </td>'''
>>> root = etree.fromstring(raw)
>>> root.xpath("//td[@width='250']//text()[normalize-space()]")
['\n10.03.1984 16:30\n', u'\nL\xfctfi K\u0131rdar, \u0130stanbul\n', '\n47-38, 49-58, 8-10\n']

相关问题 更多 >