recupero dati da pagina html
Hai un problema con Excel? 
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...
Vuoi Approfondire?