TD内的XPath所有A还包含具有“Directs”内部文本的H3。

发布于 2025-01-06 03:17:51 字数 497 浏览 1 评论 0原文

我正在抓取一个网站。有一个 TD,其中第一个子节点是 H3,其内部文本为“Directs”。在 TD 中,其他子项(H3 除外)是链接。我知道 XPath 完全能够从 TD 返回 A 标签子级,该 TD 还包含带有“Directs”内部文本的 H3,但我似乎无法正确理解。我想出的丑陋的解决方法如下,但我想学习最好的 XPath 方法:

For Each thisH3 As HtmlNode In Doc.SelectNodes("//h3")
    If thisH3.InnerText = "Directs" Then
        For Each nChild As HtmlNode In thisH3.ParentNode.ChildNodes
            If nChild.Name = "a" Then
                Debug.Print(nChild.InnerText)
            End If
        Next
    End If
Next

I'm scraping a website. There's a TD where the first child node is an H3 with an innertext of "Directs". In the TD the other children (besides the H3) are the links. I know XPath is perfectly capable of just returning the A tag children from a TD that also contains an H3 with an innertext of "Directs", I just can't seem to get it right. The ugly work-around I came up with is the following, but I want to learn the best XPath method:

For Each thisH3 As HtmlNode In Doc.SelectNodes("//h3")
    If thisH3.InnerText = "Directs" Then
        For Each nChild As HtmlNode In thisH3.ParentNode.ChildNodes
            If nChild.Name = "a" Then
                Debug.Print(nChild.InnerText)
            End If
        Next
    End If
Next

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

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

发布评论

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

评论(1

心碎的声音 2025-01-13 03:17:51

使用此 XPath 检索 td 中具有 h3 且值为 Directs 的所有 a

//td[h3 = 'Directs']/a

Use this XPath to retrieve all a in td which have h3 with value Directs:

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