从具有相同ID的网站获取值

时间:2016-02-01 15:57:17

标签: html vbscript

我试图制作一个本地VBscript来从网页获取一些值。我知道我可以使用下一个代码从特定元素中获取值:

IE.document.GetElementById("id-to-find")

我的问题是我在多个元素中拥有相同的ID(" hiddencardetailsenrollid"),所以我需要提取所有这些ID。这是重复的代码:

carId: <span id="hiddencardetailscarid">10972203</span>,

enrollId: <span id="hiddencardetailsenrollid">11147540</span>.

你有什么建议吗?我想条件是读取所有HTML文档,但我不知道如何处理它。

任何帮助将不胜感激。

编辑:这是源代码的完整屏幕截图。如您所见,它们具有完全相同的标签,但carId和enrollId具有不同的值。我无法复制代码,stackoverflow会给我一个错误(我想因为&#34; table&#34; tag):

enter image description here

1 个答案:

答案 0 :(得分:0)

如果你 有多个具有相同ID的元素,你不应该这样做,你可以使用answer from this question(追溯@peter)并略微修改它:

Dim HTMLDoc, XML, URL, table
Set HTMLDoc = CreateObject("HTMLFile")
Set XML = CreateObject("MSXML2.XMLHTTP")
URL = "http://www.verizonwireless.com/b2c/store/controller?item=phoneFirst&action=viewPhoneDetail&selectedPhoneId=5723"

With XML
  .Open "GET", URL, False
  .Send
  HTMLDoc.Write .responseText
End With

Set spans = HTMLDoc.getElementsByTagName("span")
for each span in spans
  WScript.Echo span.innerHTML
next

'=><SPAN>Set Location</SPAN>
'=>Set Location
'=><SPAN>Submit</SPAN>
'=>Submit

如上所述,您只需将getElementsByTagName替换为GetElementByID,然后遍历生成的对象数组。 GetElementByID可能甚至不是能够返回一个数组。但同样,你不应该有多个具有相同ID的html元素