VBA脚本,用于刮取单个HTML元素';s值

VBA脚本,用于刮取单个HTML元素';s值,html,excel,vba,internet-explorer,web-scraping,Html,Excel,Vba,Internet Explorer,Web Scraping,我研究了大约30个不同的问题,每个问题都涉及“getelementbyID”。我的问题是我需要刮取的元素没有id: 我看到它在“h6”类或标记中,但是 msgbox IEObj.Document.getelementsbytagname("h6").Value msgbox IEObj.Document.getelementsbyclassname("h6").Value 只返回“对象不支持此属性或方法”。我做错了什么??(代码的其余部分只是设置了一个名为IEObj的IE对

我研究了大约30个不同的问题,每个问题都涉及“getelementbyID”。我的问题是我需要刮取的元素没有id:

我看到它在“h6”类或标记中,但是

    msgbox IEObj.Document.getelementsbytagname("h6").Value
    msgbox IEObj.Document.getelementsbyclassname("h6").Value

只返回“对象不支持此属性或方法”。我做错了什么??(代码的其余部分只是设置了一个名为IEObj的IE对象,并导航到此页面,因此它并不重要)。

您必须找到内部文本为“预期交付”的h6。然后,获取h6的内部文本

dim webH6 as object, webTag as object, deliveryDate as variant
    for each webH6 in ie.document.getelementsbytagname("h6")
        if webH6.getelementsbytagname("a")(0).innertext = "Expected delivery" then
            deliveryDate = trim(replace(webH6.innertext, ":", ""))
            exit for
        end if
    next webH6

好的,我上面的答案是正确的

实际上,所有的教程都是


当我在元素中循环时,不断出现“权限被拒绝”错误(70)。事实证明,出于安全原因,该网站检测到脚本并阻止它们运行。否则,代码应该可以完美地工作

更有用的是,如果我们能看到更多的html.getElementsByCassName和getElementsByTagName返回给您一个数组。基本上,它会返回所有项,因为类和标记名不像ID一样是唯一的。您需要指定所需的项目。比如:IeObj.Document.getElementsByTagName(“h6”)(0)。InnerTextYes,这应该可以工作,但我在第二行遇到了“Object不支持此方法”错误。认真地这就是为什么我首先来到这里,因为我看到的每一个教程和帮助网站都给出了相同的建议,也给出了相同的错误…我将
ie.getelementsbytagname(“h6”)
中的第2行更正为
ie.document.getelementsbytagname(“h6”)
@C-Love511如果我的答案可以解决你的问题,你能接受我的答案吗?我是新来的,所以我需要名声。