【问题标题】:How to access inner text in DOM tree with VBA如何使用 VBA 访问 DOM 树中的内部文本
【发布时间】:2019-11-04 17:13:00
【问题描述】:

我正在编写一个宏来访问网站的 DOM 树中的一些文本,但我似乎无法访问这些文本。请查看相关 html 部分的附加图像,并查看我目前所拥有的附加代码。任何解决此问题的帮助将不胜感激。谢谢

Sub DoThings(ieapp As Object)
    Dim match_status As String
    Dim projection_rows As Object

    With ieapp
        Set projection_rows = .document.getElementById("div1").getElementById("div1_row_section").getElementById("tblMain").getElementById("div1_trans_row")

        match_status = projection_rows.getElementsByTagName("td")(2).getElementsByTagName("font")(0).getElementsByTagName("b")(0).innerText
        MsgBox (match_status)
    End With
End Sub

【问题讨论】:

  • 试试ieapp.document.getElementById("div1_trans_row").getElementsByTagName("td")(2).innerText
  • 请勿张贴代码图片。通过edit 使用 sn-p 工具,以便我们中的一些人可以复制粘贴进行测试。
  • 如果您尝试提供网页链接或示例 HTML 代码,我们可以尝试对其进行测试并尝试提供一些有助于访问所需值的建议。感谢您的理解。

标签: html vba internet-explorer dom web-scraping


【解决方案1】:

当您使用 IE 时,您可以使用:nth-of-typecss 伪类选择器来指定表格的行和列(第一行,第三列)。我首先按 id 选择表; # 是一个 CSS id selector。 “”之间的字符串各部分之间的空格代表descendant combinators,表示右边的每个字符串都是左边css选择器返回的元素string的子元素。 Css 选择器通过querySelector 应用,返回单个节点,querySelectorAll,返回一个节点列表。在这种情况下,它们是HTMLDocument 的方法。

ie.document.querySelector("#tblMain tr:nth-of-type(1) td:nth-of-type(3)").innerText

【讨论】:

    猜你喜欢
    • 2015-10-31
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    相关资源
    最近更新 更多