开发者

Is there a way to traverse all elements on an html web page by VBScript?

开发者 https://www.devze.com 2022-12-30 23:13 出处:网络
Is there a way to traverse all elements on an html web page by VBScript? For example, I want to get all the object information on an html web page: http://www.echoecho.com/html.htm

Is there a way to traverse all elements on an html web page by VBScript? For example, I want to get all the object information on an html web page: http://www.echoecho.com/html.htm

Here is the script I have created, thanks:

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.Docume开发者_开发技巧nt..??????... item (i-1)…???
   Info = Info & vbCrLf & i & IEObject.id & “-“IEObject.title & “-“ & IEObject.name & “-“ & ….etc.

Next

Wscript.Echo Info

Set IEObject = Nothing
Set objIE = Nothing


You question was a bit vague, but I believe this will do the trick:

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

You will notice that I am using the hasOwnProperty function in order to check whether or not the specified property actually exists for the given element. Without this check, errors will occur in VBScript, but not in JScript.

0

精彩评论

暂无评论...
验证码 换一张
取 消