VBA - 按标记属性提取值

时间:2017-04-05 18:12:00

标签: html excel vba tags

我一直在使用以下代码从网页中提取值。

Private Sub Update()

  Dim IE As New InternetExplorer
  IE.Visible = False
  IE.navigate "cisco.com/" & Range("srNum").Value
  Do
    DoEvents
  Loop Until IE.readyState = READYSTATE_COMPLETE
  Dim Doc As HTMLDocument
  Set Doc = IE.document
  Dim sTag As String
  sTag = Doc.getElementById("caseheader").innerText

  Sheets.Add
  ActiveCell.Value = sTag

End Sub

我现在正处于一个新页面,我需要通过属性" title"来提取值。在下面的例子中,我需要找到属性" title"具有"优先级"的值然后返回" P3"的值。

<div class="con-LFloat con-RAlign con-Priority Width25">
  <span class="con-text-bold Width20 con-RAlign">Priority :</span>
  <span class="con-text-bold con-LMargin5" title="Priority">P3</span>
</div>

我已经尝试过使用.item(0)或.Children(0)而没有运气,但我还没有找到任何文件来指导我。

我需要一些帮助来帮助我设置这个或一个可以帮我设置它的网站。

-Thanks

1 个答案:

答案 0 :(得分:0)

尝试添加以下内容:

Dim htmlEle1 as IHTMLElement

On Error Resume Next
For Each htmlEle1 in Doc.All
    If htmlEle1.getAttribute("title") = "Priority" then Debug.Print htmlEle1.innertext   
Next htmlEle1
On Error GoTo 0

同时将IE.readyState = READYSTATE_COMPLETE更改为IE.readyState = READYSTATE_COMPLETE And IE.Busy = False