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

发布于 2024-11-27 17:30:17 字数 590 浏览 0 评论 0原文

在 lxml 中工作,我想获取具有 title="Go to next page"img 子项的所有链接的 href 属性。

因此,在以下代码片段中:

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

我想取回 StdResults.aspx

我已经到目前为止:

next_link = doc.xpath("//a/img[@title='Go to next page']") 
print next_link[0].attrib['href']

但是 next_linkimg,而不是 a 标签 - 我怎样才能获得 a标签?

谢谢。

Working in lxml, I want to get the href attribute of all links with an img child that has title="Go to next page".

So in the following snippet:

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

I'd like to get StdResults.aspx back.

I've got this far:

next_link = doc.xpath("//a/img[@title='Go to next page']") 
print next_link[0].attrib['href']

But next_link is the img, not the a tag - how can I get the a tag?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧竹 2024-12-04 17:30:17

只需将 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

或者,您可以走得更远,用于

"//a[img[@title='Go to next page']]/@href"

检索 href 属性的值。

Just change a/img... to a[img...]: (the brackets sort of mean "such that")

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

Or, you could go even farther and use

"//a[img[@title='Go to next page']]/@href"

to retrieve the values of the href attributes.

生寂 2024-12-04 17:30:17

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

You can also select the parent node or arbitrary ancestors by using //a/img[@title='Go to next page']/parent::a or //a/img[@title='Go to next page']/ancestor::a respectively as XPath expressions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文