VBA脚本,用于刮取单个HTML元素';s值
我研究了大约30个不同的问题,每个问题都涉及“getelementbyID”。我的问题是我需要刮取的元素没有id: 我看到它在“h6”类或标记中,但是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对
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如果我的答案可以解决你的问题,你能接受我的答案吗?我是新来的,所以我需要名声。