必须有一个更简单的方法来执行此操作。我需要大量html文档中的一些文本。在我的测试中,找到它的最可靠方法是在div元素的text_content中查找特定单词。如果要检查包含文本的元素上方的特定元素,我一直在枚举div元素列表,并使用包含文本的元素的索引来通过对索引进行操作来指定上一个元素。但我确信必须有更好的方法。我似乎无法弄清楚。

如果不清楚

for pair in enumerate(list_of_elements):
    if 'the string' in pair[1].text_content():
        thelocation=pair[0]

the_other_text=list_of_elements[thelocation-9].text_content()


要么

theitem.getprevious().getprevious().getprevious().getprevious().getprevious().getprevious().getprevious().getprevious().getprevious().text_content()

最佳答案

lxml支持XPath

from lxml import etree
root = etree.fromstring("...your xml...")

el, = root.xpath("//div[text() = 'the string']/preceding-sibling::*[9]")

关于python - 有没有一种方法可以在Python中为lxml指定固定(或可变)数量的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2367000/

10-12 23:13