2017-05-07 5 views
0

J'ai du mal à récupérer un ensemble de liens dans une collection. Tous les autres éléments de page répondent aux commandes get normales, sauf celles-ci. C'est là qu'une connaissance de HTML et de javascript serait payante. Ma propre supposition, est la faute est susceptible de faire avec le href étant une commande javascript, ou qu'ils sont cachés derrière une classe "clear", ou "clearfix", les rendant cachés? Mon but final est de pouvoir gratter les liens depuis les hrefs javascript.HTML Anchor Elm est caché à VBA

Toute aide est appréciée. Merci

Public Function getNewsMAIN() 

Dim strURL As String: strURL = _ 
    "http://www.londonstockexchange.com/exchange/prices-and-markets/stocks/exchange-insight/company-news.html?fourWayKey=GB00BYN59130GBGBXSTMM" 
Dim HTMLDoc As New HTMLDocument 

Dim oXMLHTTP As Object 
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0") 
     oXMLHTTP.Open "GET", strURL, False 
     oXMLHTTP.send 
    If oXMLHTTP.Status = 200 Then 
     HTMLDoc.body.innerHTML = oXMLHTTP.responseText 
    Else: End If 

'//Various attempts at cornering the links 
Dim myLinks As IHTMLElementCollection 
Dim myLink As IHTMLElement 
    Set myLinks = HTMLDoc.getElementsByTagName("a") '("ul") ("li") 
    Set myLinks = HTMLDoc.getElementsByClassName("newsArchive") '("newsContainer") 
    Set myLink = HTMLDoc.getElementById("newsArchive") 

End Function 

Le code HTML en question. Les liens sont contenus dans

<li class="newsContainer"></li> 

Il y a 40 par page.

Sample HTML

Répondre

1

Ces liens font partie d'un contenu supplémentaire qui est chargé à la page après la page principale chargée, ils ne feront pas partie du contenu MSXML. Si vous souhaitez obtenir du contenu à partir d'une page comme celle-ci, votre meilleur pari serait d'essayer d'automatiser IE pour charger la page, puis de collecter les liens une fois que la page entière a été rendue.