【问题标题】:NextSibling.Innertext error "Object doesn't support this property"NextSibling.Innertext 错误“对象不支持此属性”
【发布时间】:2019-10-09 15:01:16
【问题描述】:

目标:我正在尝试从网站中提取 200 种证券的投标价格。

问题:我正在尝试提取价格所在的 td 标签的内部文本。

这个想法是循环遍历所有 TH 标签的 HTML 文档,一旦找到“Bid”,就提取下一行代码的内部文本。

VBA 错误

“对象不支持该属性”

我的代码用于提取一种证券。我没有包括所有 200 种证券的更大循环。

Set objHTML = objIE.document

Set Mytext = objHTML.getElementsByTagName("Th")

For Each Node In Mytext

    If Node.innertext = "Bid" Then
        BidPrice = Node.NextSibling.innertext
        Cells(a, 2) = BidPrice
        Exit For
    End If

Next Node

【问题讨论】:

  • 当我将以下代码更改为 BidPrice= Node.NextSibling.Innertext 为 BidPrice= Node.NextSibling 时,我尝试查看本地窗口 在我的本地窗口中,BidPrice 是“[object text]”作为 Variant /细绳。我期待从 td 标签中提取 8.725 的出价,你们知道出了什么问题吗?
  • 网站链接或格式良好的文档在运行代码时演示问题对于获取代码帮助很有用。
  • ^^ 请提供url或html
  • 尝试打印node.ParentNode.innerText。如果您想要的值在那里,请尝试使用node.ParentNode.LastChild.innerTextnode.ParentNode.querySelector("td").innerText 而不是第一个。顺便说一句,你认为你提供了足够的信息来得到答案吗?
  • 非常感谢大家的反馈,下班后我一定会尽快回复

标签: excel vba web-scraping


【解决方案1】:
For Each Node In elementOne 

If Node.innerText = "Bid" Then 

Cells(a, 2) = Node.ParentNode.querySelector("td").innerText 
'This pulls the Bid Price 8.745

再次感谢大家的帮助,尤其是 SIM!

附言今后我会学习正确的格式,现在,我只想表达我的谢意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    相关资源
    最近更新 更多