使用 lxml 解析器的 HTML getnext

问题描述 投票:0回答:1

我正在尝试解析带有 html 代码的页面,如下所示:

<html>
..
<h2><span id='identifiedid'>Identified Header<span>...</span></span></h2>
<ul>
  <li><a href='links i want'></a>...</li>
  <li><a href='links i want'></a>...</li>
  <li><a href='links i want'></a>...</li>
</ul>
..
</html>

我正在使用 Python 代码通过 lxml 解析器解析页面。我能够识别使用 xpath 指示的元素的 id。但是,我需要访问的链接没有类/id 来识别它们,而且它们也不在 id 的范围内。有什么办法可以访问相邻元素的这些链接吗?我尝试过 getnext(),但它无法访问 ul 和 li 元素

python html-parsing lxml
1个回答
1
投票

您可以使用

span
获取
getparent()
的父元素,然后使用
ul
获取
getnext()
元素:

root = etree.XML(open("lx.xml").read())
span = root.xpath("//span[@id='identifiedid']")[0]
print span.getparent().getnext().xpath('li/a/@href')
© www.soinside.com 2019 - 2024. All rights reserved.