使用lxml解析器的HTML getnext

时间:2014-02-04 11:31:07

标签: python html-parsing lxml

我正在尝试使用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元素

1 个答案:

答案 0 :(得分: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')