球员, 我是菜鸟,我想编写一个本地vbscript来从远程网页获取一些值。 网页上有一些片段。
<div id="profile_content" class="dxb_bc">
<div>
<div class="hm">
<p>
<a href="space-uid-52433.html" target="_blank">
<img src="http://bbs.dealmoon.com/uc_server/avatar.php?uid=52433&size=middle" />
</a>
</p>
<h2 class="mbn">
<a href="space-uid-52433.html" target="_blank">LittleCar</a>
</h2>
</div>
<ul class="xl xl2 cl ul_list">
<li class='ul_ignore'>
<a href="home.php?mod=spacecp&ac=friend&op=ignore&uid=52433&handlekey=ignorefriendhk_52433" id="a_ignore_52433" onclick="showWindow(this.id, this.href, 'get', 0);">AAAAAA</a>
</li>
<li class='ul_msg'>
<a href="home.php?mod=space&uid=52433&do=wall">BBBBBB</a>
</li>
<li class='ul_poke'>
<a href="home.php?mod=spacecp&ac=poke&op=send&uid=52433&handlekey=propokehk_52433" id="a_poke_52433" onclick="showWindow(this.id, this.href, 'get', 0);">CCCCCC</a>
</li>
<li class='ul_pm'>
<a href="home.php?mod=spacecp&ac=pm&op=showmsg&handlekey=showmsg_52433&touid=52433&pmid=0&daterange=2" id="a_sendpm_52433" onclick="showWindow('showMsgBox', this.href, 'get', 0)">DDDDDD</a>
</li>
</ul>
</div>
</div>
</div>
我的问题很简单。我只想得到'LittleCar''AAAAAA''BBBBBB'等值。我试着编写vbscript来捕获元素:
<a href="space-uid-52433.html" target="_blank">LittleCar</a>
像这样:
IEApp.Document.getElementById("profile_content").getElementByTagName("a").Item(1)
但我得到的错误就像不支持的方法。我能做的就是在vbscript中通过id获取元素。我没有找到任何有价值的东西来解决我的问题。所以我在这里
我已经问了一个类似的问题,这个问题被搁置了。我的声誉已降低2点。我无法相信没有人可以帮助我。 感谢
答案 0 :(得分:1)
使用
获取A标签的集合' Note the "s" in getElementsByTagName
Set collATags = IEApp.Document.getElementsByTagName("a")
' ^ there it is
现在你可以像:
一样迭代它们For Each aTag in collATags
Wscript.Echo aTag.outerHtml
Next
修改强>
要获取AAAAA等特定文本,请使用innerHtml属性:
For Each aTag in collATags
If aTag.innerHtml = "AAAAA" then
' Found it!
Set foundTag = aTag
Exit for
End if
Next
要从具有ID的标记缩小到特定标记,您可以使用:
Set profileContentElement = document.GetElementById("profile-content")
使用此元素获取具有标记名称的所有元素:
Set collATags = profileContentElement.getElementsByTagName("a")
并使用上述方法迭代元素以获得具有AAAAA文本的元素作为innerHtml
<强> EDIT2:强>
为了获取标识符不是id
的元素,获取具有正确ID的父元素,获取Tagname上的childcollection并过滤outerHtml上的正确元素:
' Get the correct parent
Set profileContentElement = document.GetElementById("profile-content")
' Get the childcollection with the A tag
Set collATags = profileContentElement.getElementsByTagName("a")
' Iterate through the collection
Set foundTag = Nothing
For Each aTag in collATags
If aTag.outerHtml = "home.php?mod=space&uid=52433&do=wall" then
' Found it!
Set foundTag = aTag
Exit for
End if
Next
' Get the text in the foundTag
If not foundTag Is Nothing Then
wscript.echo "Woei, found the linktext, it is: " & foundTag.innerHtml
End If
注意:这里没有Windows机器,这是未经测试的代码。