繁体   English   中英

Python lxml 无法获取所有文本

[英]Python lxml cannot get all text

我正在使用 Python lxml库来解析 HTML。 我有叶点,例如<a>并想获取其父级的文本。 我尝试通过两种方式做到这一点:

  1. .xpath('::parent*') ,
  2. .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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM