2016-01-13 4 views
0

Я хочу извлечь значения атрибутов из типа заголовка на веб-странице с помощью excel vba. Данные, которые я хочу, чтобы очистить от webpage имеет следующую структуру:Excel: атрибуты запроса из заголовков HTML

<div class="index-detail"> 
 
    <h5><a href="/indices/equity/dow-jones-sustainability-chile-index-clp" title="DJSI Chile" contentIdentifier="2e9cb165-0cbf-4070-a5ef-dc20bf6219ba" contentType="web-page" contentTitle="Dow Jones Sustainability™ Chile Index (CLP)">DJSI Chile</a></h5> 
 
    <span class="return-value">917.08 </span> 
 
    <span class="daily-change down ">-0.1% ▼ </span> 
 
</div>

Использование getElementsByClassName и getElementsByTagName я уже извлек заголовок <h5>, однако, когда я напечатать innerText из заголовка I get DJSI Chile, но я хочу получить текст внутри атрибута contentTitle который Dow Jones Sustainability™ Chile Index (CLP).

Как это сделать?

UPDATE

Код, я использую выглядит следующим образом:

Sub myConSP() 
 
    
 
    ' Declare variables 
 
    Dim oHtmlSP As HTMLDocument 
 
    Dim tSPIndex As HTMLDivElement 
 
    Dim tSPIdx As HTMLDivElement 
 

 
    ' Load page inside HTMLDocument 
 
    Set oHtmlSP = New HTMLDocument 
 
    With CreateObject("WINHTTP.WinHTTPRequest.5.1") 
 
     .Open "GET", "http://www.espanol.spindices.com", False 
 
     .send 
 
     oHtmlSP.body.innerHTML = .responseText 
 
    End With 
 

 
    ' Get indices 
 
    Set tSPIndex = oHtmlSP.getElementById("all-indices-slider") 
 

 
    Set objTitleTag = tSPIndex.getElementsByClassName("index-detail")(0).getElementsByTagName("h5")(0) 
 
    MsgBox objTitleTag.getAttribute("contentTitle").innerText 
 

 
End Sub

+0

'objTitleTag.getAttribute (" contentTitle ")' –

+0

Как определить 'objTitleTag'? – capm

+0

Это то, что вы называете 'innerText'. Всегда лучше показывать ваш фактический код: упрощает создание предложений о том, что добавить. –

ответ

1

Атрибут прикрепляется к <a>, не <h5> (жаль, что была моя ошибка в примечаниях выше):

Sub TT() 

    Dim html As String, d As New HTMLDocument, el 

    html = "<div class='index-detail'>" & _ 
    "<h5><a href='/indices/equity/dow-jones-sustainability-chile-index-clp' " & _ 
    "title='DJSI Chile' contentIdentifier='2e9cb165-0cbf-4070-a5ef-dc20bf6219ba' " & _ 
    "contentType = 'web-page' " & _ 
    "contentTitle='Dow Jones Sustainability™ Chile Index (CLP)'>DJSI Chile</a></h5> " & _ 
    "<span class='return-value'>917.08 </span> " & _ 
    "<span class='daily-change down '>-0.1% ? </span></div>" 

    d.body.innerHTML = html 

    Set el = d.getElementsByClassName("index-detail")(0).getElementsByTagName("a")(0) 

    Debug.Print el.getAttribute("contentTitle") 
     ' >>> Dow Jones Sustainability™ Chile Index (CLP) 


End Sub 
+0

Получаю, когда я извлекаю элементы по классу 'index-detail', а затем выделяю заголовок'

', атрибуты не принадлежат заголовку, а в другой раздел, начинающийся с' capm

Смежные вопросы