getelementbyID内部dt id值

时间:2013-05-17 23:34:59

标签: excel-vba vbscript excel-vba-mac vba excel

我使用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系统的软件工程师

请帮助我。

1 个答案:

答案 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