[英]Python lxml cannot get all text
我正在使用 Python lxml
库来解析 HTML。 我有叶点,例如<a>
并想获取其父级的文本。 我尝试通过两种方式做到这一点:
.xpath('::parent*')
,.getparent().text
。from lxml.etree import HTML
text = '<p>FIRST PART<a href="THE LINK" target="_blank">LINK TEXT</a>SECOND PART</p>'
parsed = HTML(text)
parsed.xpath('//a')[0].getparent().text
parsed.xpath('//a/parent::*')[0].text
我使用任何一种方法都获得了FIRST PART
,但是如何获得SECOND PART
?
您可以使用.itertext()
元素的方法:
from lxml.etree import HTML
text = '<p>FIRST PART<a href="THE LINK" target="_blank">LINK TEXT</a>SECOND PART</p>'
parsed = HTML(text)
parent = parsed.xpath('//a/parent::*')[0]
text = list(parent.itertext())
print(text[0])
print(text[-1])
印刷:
FIRST PART
SECOND PART
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.