我想将html文件解析为:
1)当td中有子模式时,请输出stage1
2)当td中没有子模式时,请输出stage2
如何完成我的代码?
data='''
<table>
<tr>
<td>
<span> hallo
</span>
</td>
</tr>
<tr>
<td> hallo
</td>
</tr>
</table> '''
import lxml.html
root=lxml.html.document_fromstring(data)
set=root.xpath('//table//tr//td')
for cell in set:
if(there is a child node in current node):
print("stage1")
else:
print("stage2")
答案 0 :(得分:1)
一种选择是使用getchildren()
方法:
for cell in set:
print "stage1" if cell.getchildren() else "stage2"
打印:
stage1
stage2
由于第一个td
内有span
,第二个td
没有任何子女。
UPD:
for cell in set:
children = cell.getchildren()
if not children:
print "stage2"
else:
print "stage1"
for child in children:
print child.xpath('node()')[0].strip()