有没有办法通过VBScript遍历HTML网页上的所有元素?

问题描述:

有没有办法通过VBScript遍历HTML网页上的所有元素?例如,我想获得一个HTML网页上的所有对象的信息:http://www.echoecho.com/html.htm有没有办法通过VBScript遍历HTML网页上的所有元素?

这里是我创建的脚本,谢谢:

Dim objIE 
Dim IEObject 
Dim Info 
Info = “” 

Set objIE = CreateObject("InternetExplorer.Application") 
objIE.Visible = True 
objIE.Navigate "http://www.echoecho.com/html.htm" 

Do While objIE.Busy Or (objIE.READYSTATE <> 4) 
    Wscript.Sleep 100 
Loop 
WScript.Sleep 50 

‘ Can I use objIE.Document.all.Item.length to count all elements on the webpage? 
For i=1 to objIE.Document.all.Item.length then 

    IEObject = objIE.Document..??????... item (i-1)…??? 
    Info = Info & vbCrLf & i & IEObject.id & “-“IEObject.title & “-“ & IEObject.name & “-“ & ….etc. 

Next 

Wscript.Echo Info 

Set IEObject = Nothing 
Set objIE = Nothing 

你的问题是有点模糊,但我相信这将这样的伎俩:

Dim objIE, IEObject, Info, all, hasOwnProperty 
Info = "" 

Set objIE = CreateObject("InternetExplorer.Application") 
objIE.Visible = True 
objIE.Navigate "http://www.echoecho.com/html.htm" 

Do While objIE.Busy Or (objIE.READYSTATE <> 4) 
Wscript.Sleep 100 
Loop 
WScript.Sleep 50 

Set hasOwnProperty = objIE.Document.ParentWindow.Object.prototype.hasOwnProperty 

' Can I use objIE.Document.all.Item.length to count all elements on the webpage? 
Set all = objIE.Document.all 
For i = 0 To all.Item.Length - 1 
Set IEObject = all.Item(i) 

'If this is not the first item, place this data on a new line. 
If i > 0 Then Info = Info & vbCrLf 

' Number each line. 
Info = Info & i + 1 & ". " 

' Specify the ID if it is given. 
If hasOwnProperty.call(IEObject, "id") Then 
    Info = Info & IEObject.id 
Else 
    Info = Info & "[NO ID]" 
End If 

' Specify the title if it is given. 
If hasOwnProperty.call(IEObject, "title") Then 
    Info = Info & "-" & IEObject.title 
Else 
    Info = Info & "-[NO TITLE]" 
End If 

' Specify the name if it is given. 
If hasOwnProperty.call(IEObject, "name") Then 
    Info = Info & "-" & IEObject.name 
Else 
    Info = Info & "-[NO NAME]" 
End If 
Next 

Wscript.Echo Info 

Set IEObject = Nothing 
Set objIE = Nothing 

你会发现,我正在使用顺序hasOwnProperty函数来检查指定的属性是否真正存在给定元素。没有这个检查,VBScript会发生错误,但不会在JScript中发生。