如何从vbscript中的html页面提取值-我尝试了MSXML2.DOMDocument

如何从vbscript中的html页面提取值-我尝试了MSXML2.DOMDocument,html,vbscript,domdocument,Html,Vbscript,Domdocument,下面是我试图从网页中的节点获取值的一些代码。但在尝试设置对象节点时失败。。。非常感谢您的帮助 Dim objHttp, sWebPage, objNode, objDoc Set objDoc = CreateObject("MSXML2.DOMDocument") objDoc.Load "http://www.hl.co.uk/shares/shares-search-results/a/aveva-group-plc-ordinary-3.555p" ' objDoc.setPrope

下面是我试图从网页中的节点获取值的一些代码。但在尝试设置对象节点时失败。。。非常感谢您的帮助

Dim objHttp, sWebPage, objNode, objDoc

Set objDoc = CreateObject("MSXML2.DOMDocument")
objDoc.Load "http://www.hl.co.uk/shares/shares-search-results/a/aveva-group-plc-ordinary-3.555p"

' objDoc.setProperty "SelectionLanguage", "XPath"

' Find a particular element using XPath:
Set objNode = objDoc.selectSingleNode("span[@id='ls-bid-AVV-L']")
MsgBox objNode.getAttribute("value")
  • 期望XML解析器处理cleanHTML是非常乐观的;对于有缺陷的HTML,您可以忽略它()
  • 在没有检查错误()的情况下,决不应加载。在您的例子中,抛出的.reason是“DTD/Schema中未定义此元素的属性'property'
  • 您可以使用
    objDoc.validateOnParse=False
    关闭验证,并使用
    objDoc.async=False
    避免monster页面出现问题(至少没有“msxml3.dll:完成此操作所需的数据尚不可用。”错误)
  • 要在任何位置搜索span(不知道其在层次结构中的位置),您需要“//span[@id='ls-bid-AVV-L']”,而不是“span[@id='ls-bid-AVV-L']”
  • 要查找的范围没有名为value的属性;要获得“1334.00p”,您需要请求
    objNode.text
  • 但所有这些都是徒劳的:这一页的格式甚至都不好。.parseError.reason是“结束标记'div'与开始标记'input'不匹配”
  • 期望XML解析器处理cleanHTML是非常乐观的;对于有缺陷的HTML,您可以忽略它()
  • 在没有检查错误()的情况下,决不应加载。在您的例子中,抛出的.reason是“DTD/Schema中未定义此元素的属性'property'
  • 您可以使用
    objDoc.validateOnParse=False
    关闭验证,并使用
    objDoc.async=False
    避免monster页面出现问题(至少没有“msxml3.dll:完成此操作所需的数据尚不可用。”错误)
  • 要在任何位置搜索span(不知道其在层次结构中的位置),您需要“//span[@id='ls-bid-AVV-L']”,而不是“span[@id='ls-bid-AVV-L']”
  • 要查找的范围没有名为value的属性;要获得“1334.00p”,您需要请求
    objNode.text
  • 但所有这些都是徒劳的:这一页的格式甚至都不好。.parseError.reason是“结束标记'div'与开始标记'input'不匹配”

  • 使用Internet Explorer COM对象:

    url = "http://www.hl.co.uk/shares/shares-search-results/a/aveva-group-plc-ordinary-3.555p"
    
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.Navigate url
    While ie.ReadyState <> 4
      WScript.Sleep 100
    Wend
    
    MsgBox ie.document.getElementById("ls-bid-AVV-L").innerText
    
    ie.Quit
    
    url=”http://www.hl.co.uk/shares/shares-search-results/a/aveva-group-plc-ordinary-3.555p"
    设置ie=CreateObject(“InternetExplorer.Application”)
    可见=真实
    浏览网址
    而ie.ReadyState 4
    WScript.Sleep 100
    温德
    MsgBox ie.document.getElementById(“ls-bid-AVV-L”).innerText
    即退出
    
    使用Internet Explorer COM对象:

    url = "http://www.hl.co.uk/shares/shares-search-results/a/aveva-group-plc-ordinary-3.555p"
    
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.Navigate url
    While ie.ReadyState <> 4
      WScript.Sleep 100
    Wend
    
    MsgBox ie.document.getElementById("ls-bid-AVV-L").innerText
    
    ie.Quit
    
    url=”http://www.hl.co.uk/shares/shares-search-results/a/aveva-group-plc-ordinary-3.555p"
    设置ie=CreateObject(“InternetExplorer.Application”)
    可见=真实
    浏览网址
    而ie.ReadyState 4
    WScript.Sleep 100
    温德
    MsgBox ie.document.getElementById(“ls-bid-AVV-L”).innerText
    即退出