1

我正在使用 Vb 脚本从 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 提取跨度类信息

但是,在那种情况下,我想提取与 dl id 对应的信息,它也有 span id。在这种情况下,我需要提取dt id对应的信息。

在我的 VB 脚本中,我尝试了类似的方法。

Dim openedpage as String
openedpage = iedoc1.getElementById("overview").getElementById("overview-summary-current-title").innerHTML

但是,我没有得到任何输出。我想要作为ABC 系统的软件工程师的输出。

请帮帮我。

4

1 回答 1

0

返回的对象getElementById()没有 method .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
于 2013-05-18T00:03:33.997 回答