3

我正在尝试使用 Vb 脚本从 HTML 页面中提取信息。这是我试图从中提取信息的 HTML 页面。

<div id="profile-education">

  <div class="position  first education vevent vcard" id="xxxxxx">
  University 1
  <span class="degree">Ph.D.</span>
  <span class="major">Computer Science</span>
  <p class="period">
  <abbr class="dtstart" title="2005-01-01">2005</abbr> &#8211; <abbr class="dtend" 
  title="2012-12-31">2012</abbr>
  </div>          

  <div class="position  education vevent vcard" id="xxxxxx">  
  University 2                  
  <span class="degree">M.Eng.</span> 
  <span class="major">Computer Science</span>
  <p class="period">
  <abbr class="dtstart" title="2000-01-01">2000</abbr> &#8211; <abbr class="dtend" 
  title="2004-12-31">2004</abbr>
  </p>
  </div>

</div>

我想以以下格式提取信息。

  • 大学名称:大学1
  • 学位名称:Phd
  • 专业:计算机科学
  • 期间:2005 - 2012

  • 大学名称:大学2

  • 学位名称:M.Eng
  • 专业:计算机科学
  • 时期:2000 - 2004

在我的 VB 脚本中,我有以下代码将整个信息提取为单个变量。

Dim openedpage as String
openedpage = iedoc1.getElementById("profile-education").innerText

但是,如果我在我的 vb 脚本中使用以下语句,我可以获得特定的跨度信息。

openedpage = iedoc1.getElementById("profile-education").getElementsByTagName("span")
(0).innerText

上面的代码给了我 Phd 作为输出。但是,我不会事先知道总跨度,所以我不能简单地在我的代码中给出 span(0) 和 span(1)。另外,我想提取所有 div 标签的信息,我也不知道这些信息。基本上,我想要一些循环结构来遍历具有 id profile-education的 div 标签,我应该能够从中提取多个 div 和 span 信息。

4

1 回答 1

6
Dim divs, div

set divs = iedoc1.getElementById("profile-education").getElementsByTagName("div")

for each div in divs
    debug.print "*************************************"
    debug.Print div.ChildNodes(0).toString
    debug.print div.getElementsByTagName("span")(0).innerText
    debug.print div.getElementsByTagName("span")(1).innerText
    '  etc...
next div
于 2013-05-21T21:09:48.030 回答