我使用Vb Script从HTML中提取数据。这是我尝试提取数据的HTML代码。
<dl id="overview">
<dt id="overview-summary-current-title" class="summary-current" style="display:block">
Current
</dt>
<dd class="summary-current" style="display:block">
<ul class="current">
<li>
Software Engineer
<span class="at">at </span>
<a class="company-profile-public" href="/company/ABC Systems?trk=ppro_cprof">
<span class="org summary">ABC Systems</span></a>
</li>
</ul>
</dd>
在我之前的问题中,我曾提出过类似的疑问。链接为Excel getElementById extract the span class information。
但是,在这种情况下,我想提取与dl id相对应的信息,并且它还具有span id。在这种情况下,我需要提取与dt id相对应的信息。
在我的VB脚本中,我尝试过这样的事情。
Dim openedpage as String
openedpage = iedoc1.getElementById("overview").getElementById("overview-summary-current-title").innerHTML
然而,我没有输出。 我希望输出为 ABC系统的软件工程师。
请帮助我。
答案 0 :(得分:0)
getElementById()
返回的对象没有方法.getElementById()
,因此以下行失败:
.getElementById("overview").getElementById("overview-summary-current-title")
如果您没有获得任何输出,甚至没有错误消息,您可能在脚本中的某处有On Error Resume Next
。请不要使用它,除非你确切地知道你正在做什么和有合理的错误处理代码。
此外,ID为“overview-summary-current-title”的元素为:
<dt id="overview-summary-current-title" class="summary-current" style="display:block">
Current
</dt>
因此,您无法从该元素中提取“ABC系统的软件工程师”文本。
尝试从ID为“overview”的元素中选择第一个<ul>
标记,然后使用innerText
属性而不是innerHtml
属性:
Set ie = CreateObject("InternetExplorer Application")
ie.Navigate "..."
While ie.Busy : WScript.Sleep 100 : Wend
Set e1 = ie.document.getElementById("overview")
Set e2 = e1.getElementsByTagName("ul")(0)
WScript.Echo e2.innerText