假设我有这样的代码:
<table>
<tr>
<td colspan=2>Date</td>
</tr>
<tr id='something'>
<td>8 september</td>
<td>2008</td>
</tr>
</table>
我想提取“2008年9月8日”的日期。
答案 0 :(得分:2)
纯XPath 1.0解决方案。
使用:强>
string(normalize-space(//table/tr[@id = 'something']))
答案 1 :(得分:0)
您可以从每个td
元素中收集文本,然后将其加入' '.join(...)
:
import lxml.html as LH
content = '''
<table>
<tr>
<td colspan=2>Date</td>
</tr>
<tr id='something'>
<td>8 september</td>
<td>2008</td>
</tr>
</table>
'''
doc = LH.fromstring(content)
date = ' '.join(td.text for td in doc.xpath('//table/tr[@id = "something"]/td'))
print(date)
产量
8 september 2008
或者,如果您可以处理回车,则可以使用text_content()
方法:
for td in doc.xpath('//table/tr[@id = "something"]'):
print(td.text_content())
产量
8 september
2008