recupero dati da pagina html



  • recupero dati da pagina html
    di marcflo (utente non iscritto) data: 16/08/2016 09:49:58

    Buongiorno a tutti e mi scuso per la precedente discussione in cui ho scritto codice html nel corpo del messaggio, ora provo ad allegare un file:
    Sono alle prese da diversi giorni con un problema che non riesco a risolvere:
    accedo, partendo da un foglio excel, ad un sito web situato nella intranet, passando i parametri necessari.
    Arrivo in una pagina Web dalla quale devo estrarre dei dati (Denominazione - Natura Giuridica etc) - in allegato parte del codice html.
    Premesso che i dati sembrano essere in una tabella senza un identificatore (ID) ma definiti dal tag , ho cercato di intercettarli con getElementsByClassName ma non ottengo nulla, forse uso il metodo in maniera errata. Oppure se esiste un altro modo per recuperare quello che mi serve.
    Ringrazio chi mi vorrà aiutare :)



  • di Vecchio Frac data: 16/08/2016 10:13:31

    Prima di passare alle cose complicate, vediamo qualche strada semplice.
    Come leggi i dati dalla pagina intranet?
    Con una web query? (Dati Da web)





  • di marcflo (utente non iscritto) data: 16/08/2016 10:23:28

    Ciao, non uso query web perchè non fa al mio caso, ma procedo esclusivamente da codice vba che allego (opportunamente commentato)
    Grazie



  • di Vecchio Frac data: 16/08/2016 11:00:13

    Per me è un terreno un po' inesplorato. Anche perchè non sono in grado di fare un test efficace.
    Il riferimento a un file html locale non mi dà risultati (si disconnette l'oggetto IE di automazione).
    Comunque fammi un tentativo :
    dopo ie.navigate imposta un
    Set oHtml = ie.document

    e alla fine sostituisci
    Foglio2.Range("a1").Value = ie.document.body.innerHTML

    con
    Foglio2.Range("a1").Value = oHtml.DocumentElement.innerHTML






  • di marcflo (utente non iscritto) data: 16/08/2016 11:10:23

    nell'allegato quello che ottengo con l'istruzione:
    Foglio2.Range("a1").Value = oHtml.DocumentElement.innerHTML



  • di Vecchio Frac data: 16/08/2016 11:14:58

    Sto ottenendo un parziale risultato incoraggiante ma ho cambiato alcuni oggetti.
    Anzitutto ho settato dei riferimenti a Microsoft Internet Controls e Microsoft HTML Object Liubrary (probabilmente anche tu l'hai fatto).

    E quindi:
    Dim ie As InternetExplorer
    
    Set ie = New InternetExplorerMedium
    ...
    MsgBox oHtml.DocumentElement.innerHTML


    Dopodichè quando mi collego all'intranet aziendale ottengo il mio bel documento di testo inner html.
    Allego lo scheletro del mio test.
     
    Option Explicit
    
    Sub test()
    Dim ie As InternetExplorer 
    Dim oHtml       As HTMLDocument
    
        Set ie = New InternetExplorerMedium  
        Set oHtml = New HTMLDocument
        
            ie.Visible = False
            ie.Navigate "h t t p://intranet.apss.tn.it/"
            
            Do While ie.READYSTATE <> 4     '<--- 4 = READYSTATE_COMPLETE
                DoEvents
            Loop
            
            Set oHtml = ie.document
                
        Set ie = Nothing
        MsgBox oHtml.DocumentElement.innerHTML
     
    End Sub
    






  • di marcflo (utente non iscritto) data: 16/08/2016 11:37:07

    Ottengo anche io un risultato, anche se scarno...continuo a lavorarci sopra sulla strada che mi hai indicato....
    Grazie



  • di Vecchio Frac data: 16/08/2016 11:39:30

    Scarno quanto? come quello che hai allegato?
    Io invece vedo tutto il codice html della pagina...