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

时间:2016-08-06 13:37:04

标签: python xpath

<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()”)。但这是错误的。

预期结果是: text = ['10.03.1984 16:30','LütfiKırdar,İstanbul','47-38,49-58,8-10']

1 个答案:

答案 0 :(得分:2)

  

&#34;我的代码是mactarih=tree.xpath("//tr//td[@width='250']//text()")。但这是错误的&#34;

如果它错了&#39;在它返回空文本或换行符以及正确文本的意义上,您可以使用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']