在python中使用lxml解析嵌套的html列表
我试图解析html列表的元素,如下所示:在python中使用lxml解析嵌套的html列表,python,string,lxml,Python,String,Lxml,我试图解析html列表的元素,如下所示: <ol> <li>r1</li> <li>r2 <ul> <li>n1</li> <li>n2</li> </ul> </li> <li>r3 <ul>
<ol>
<li>r1</li>
<li>r2
<ul>
<li>n1</li>
<li>n2</li>
</ul>
</li>
<li>r3
<ul>
<li>d1
<ol>
<li>e1</li>
<li>e2</li>
</ol>
</li>
<li>d2</li>
</ul>
</li>
<li>r4</li>
</ol>
r1
r2
- n1
- 氮气
r3
- d1
- e1
- e2
d2
r4
在大部分情况下,我可以解析它,但对我来说最大的问题是如何取回dom文本。不幸的是,lxml的node.text_content()返回其下完整树的文本形式。我可以使用lxml获取该元素的文本内容,还是需要使用字符串操作或正则表达式
例如:带有d1的节点返回“d1e1e2”,而我希望它只返回d1。每个节点都有一个名为
text
的属性。这就是你要找的
e、 g:
对于root.iter(“*”)中的节点:
打印node.text
#打印node.tail#例如:abc def=>abc def
for node in root.iter("*"):
print node.text
# print node.tail # e.g.: <div> <span> abc </span> def </div> => abc def