lxml:获取具有特定子元素的元素?

2024-10-01 13:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在lxml中工作时,我想获得所有链接的href属性,该属性具有一个img子级,它具有title="Go to next page"。在

所以在下面的片段中:

<a class="noborder" href="StdResults.aspx">
<img src="arrowr.gif" title="Go to next page"></img>
</a>

我想把StdResults.aspx拿回来。在

我已经做到了:

^{pr2}$

但是next_linkimg,而不是a标记-我如何才能得到a标记?在

谢谢。在


Tags: to标记goimg属性title链接page
2条回答

只需将a/img...改为a[img...]:(方括号有点像“这样”的意思)

import lxml.html as lh

content='''<a class="noborder" href="StdResults.aspx">
<img src="arrowr.gif" title="Go to next page"></img>
</a>'''

doc=lh.fromstring(content)
for elt in doc.xpath("//a[img[@title='Go to next page']]"):
    print(elt.attrib['href'])

# StdResults.aspx

或者,你可以走得更远

^{pr2}$

检索href属性的值。在

还可以通过分别使用//a/img[@title='Go to next page']/parent::a//a/img[@title='Go to next page']/ancestor::a作为XPath表达式来选择父节点或任意祖先节点。在

相关问题 更多 >