Newsgroup: it.comp.appl.access
Titolo: Recuperare dati da pagine WEB

Salve,
forse � gi� stato discusso ma non trovo il thread, � possibile da codice VBA 
recuperare dei dati in pagine WEB pubblicate su Internet ?
Di sicuro si pu� fare, avete qualche HowTo o link per imparare la tecnica ?
grazie mille. 

 grazie mille.
c'è un mio demo...
http://www.accessgroup.it/HomeArgomenti.asp?ID=120&Oggetto2=Recuperare%20DATI%20da%20SERVER%20REMOTO
credo sia quello che cerchi.

redo sia quello che cerchi.
Grazie ma vorrei prelevare un determinato valore , le pagine di cui parlo 
hanno diversi valori e devo recuperarne un apio nello specifico.
Qualcuno diceva che le pagine devono essere formattate in una certa maniera, 
immagino parlasse di valori di variabili o cose del genere.
Se avete qualche altra idea, comunque ti ringrazio per la risposta.
Saluti 

 ha scritto nel messaggio 
news:4b27...@news.x-privat.org...

Allego un pezzo di codice di un'applicazione che avevo scritto diverso tempo 
fa e che serviva a leggere le mails da un server Outlook Web Access. Non 
conoscevo la struttura con cui lavorava OWA, quindi avevo dovuto 
"inventarmi" delle tecniche a dir poco sconclusionate, ma forse puoi trarne 
qualche spunto per il tuo problema.
Tieni presente che quando ti trovi con Internet Explorer sulla pagina di un 
sito, puoi selezionare "Visualizza" e poi "Origine" e cos� vedi il codice 
HTML della pagina visualizzata. Con un po' di inventiva e tanta voglia di 
giungere ad un risultato, aiutandoti anche col codice qui sotto, otterrai 
sicuramente quello che desideri.
Dim Arco1 as String, Arco2 as String, Arco3 as String
Dim Buffer As String * 10240
Dim BytesLetti As Long
Dim HandleInternet As Long
Dim HandleHTTP As Long
Dim RispHTML As Boolean
Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Dim OggettoWebBrowser1 As SHDocVw.WebBrowser
Dim OggettoWebBrowser2 As SHDocVw.WebBrowser
Dim DocumentoHTML As MSHTML.HTMLDocument
Dim ElementoDelDocumento As MSHTML.HTMLDocument
Dim FrameDelDocumento As MSHTML.HTMLFrameElement
Dim ElencoMails As IHTMLElement
Dim Allegati As MSHTML.HTMLLinkElement
Dim TabellaDelDocumento As MSHTML.HTMLTable
Dim Rigaditabella As MSHTML.HTMLTableRow
Dim CellaDiTabella As MSHTML.HTMLTableCell
    Set OggettoWebBrowser1 = Me.WebBrowser1.object
    Set OggettoWebBrowser2 = Me.WebBrowser2.object
    OggettoWebBrowser1.navigate "sito che vuoi visitare", &H8
    Do While OggettoWebBrowser1.Busy Or _
            OggettoWebBrowser1.readyState < 4
        DoEvents
    Loop
    Set DocumentoHTML = Me.WebBrowser1.object.Document
    Set FrameDelDocumento = DocumentoHTML.frames(1).Document
    Set ElencoMails = FrameDelDocumento.getElementById("dvcontents")
    Arco1 = ElencoMails.all(10).innerHTML
    Totmailselezionate = 0
    i = 1
ripetiloop:
    j = InStr(i, Arco1, "</TR>")
    If j = 0 Then GoTo fineloop
    Arco2 = Mid$(Arco1, i, j - i + 5)
    i = j + 5
    j = 1
    k = InStr(j, Arco2, " id=")
    If Mid$(Arco2, k + 4, 10) = "unselected" Then GoTo ripetiloop
    If Mid$(Arco2, k + 4, 8) <> "selected" Then
        MsgBox "Non trovate le parole chiave 'selected' e 'unselected'", , 
Titoloapplicazione
        Exit Sub
    End If
    j = j + k + 12
    k = InStr(j, Arco2, " id=")
    If Mid$(Arco2, k + 4, 4) <> "http" Then
        MsgBox "Non trovata la parola chiave 'id=http'", , 
Titoloapplicazione
        Exit Sub
    End If
    j = k + 4
    k = InStr(j, Arco2, " ")
    If k = 0 Then
        MsgBox "Il nome del messaggio � irregolare", , Titoloapplicazione
        Exit Sub
    End If
    Totmailselezionate = Totmailselezionate + 1
    If Totmailselezionate > UBound(MailSelezionate) Then
        MsgBox "Selezionati troppi messaggi", , Titoloapplicazione
        Exit Sub
    End If
    MailSelezionate(Totmailselezionate) = Mid$(Arco2, j, k - j)
    GoTo ripetiloop
fineloop:
    Indice = 1
prosegui:
    OggettoWebBrowser1.navigate MailSelezionate(Indice), &H8
    Do While OggettoWebBrowser1.Busy Or _
            OggettoWebBrowser1.readyState < 4
        DoEvents
    Loop
modosingolo:
'Stop
    Do While OggettoWebBrowser2.Busy Or _
            OggettoWebBrowser2.readyState < 4
        DoEvents
    Loop
    Set DocumentoHTML = Me.WebBrowser2.object.Document
    DettaglioMail = ""
    Set TabellaDelDocumento = DocumentoHTML.getElementById("tblHeader")
    Set Rigaditabella = TabellaDelDocumento.rows(0)
    Set CellaDiTabella = Rigaditabella.cells(3)
    DettaglioMail = DettaglioMail & "Inviato:    " & 
CellaDiTabella.innerText & vbCrLf
    Set ElementoDelDocumento = DocumentoHTML.getElementById("_trFromText")
    DettaglioMail = DettaglioMail & "Da:          " & 
ElementoDelDocumento.innerText & vbCrLf
    Mittente = ElementoDelDocumento.innerText
    Set ElementoDelDocumento = DocumentoHTML.getElementById("_trToText")
    DettaglioMail = DettaglioMail & "A:            " & 
ElementoDelDocumento.innerText & vbCrLf
    Set ElementoDelDocumento = DocumentoHTML.getElementById("_trCcText")
    DettaglioMail = DettaglioMail & "Cc:           " & 
ElementoDelDocumento.innerText & vbCrLf
    Set ElementoDelDocumento = 
DocumentoHTML.getElementById("_trSubjectText")
    DettaglioMail = DettaglioMail & "Oggetto:   " & 
ElementoDelDocumento.innerText & vbCrLf
    Oggettodeldocumento = ElementoDelDocumento.innerText
    Set ElementoDelDocumento = DocumentoHTML.getElementById("_tdAttachWell")
    DettaglioMail = DettaglioMail & "Allegati:   " & 
ElementoDelDocumento.innerText & vbCrLf
    StringaAllegati = ElementoDelDocumento.innerText
    Set FrameDelDocumento = DocumentoHTML.frames(0).Document
    DettaglioMail = DettaglioMail & vbCrLf & 
FrameDelDocumento.body.innerText & vbCrLf
'Stop
    TitoloDellaMail = "[e-mail] " & CellaDiTabella.innerText & " " & _
            Mittente & ": " & Oggettodeldocumento
'    TitoloDellaMail = Left$(TitoloDellaMail, 250)
    Set rst1 = Mascheraaddestramento.RecordsetClone
    TitoloDellaMail = Left$(TitoloDellaMail, rst1.Fields("Titolo").Size)
    Set rst1 = Nothing
e cos� via ....
Ciao
Antonio

 Saluti
Fai un esempio concreto.
In generale; se sai cosa cerchi esegui il download, in una variabile, del 
codice HTML e (es.) con la funzione Instr() lo cerchi.
Se devi ottenere un valore che � contenuto da un tag HTML (es.) � contenuto 
in una cella di una tabella, se la tabella � unica puoi "rintracciarla" 
facendo riferimento al DOM (Document Object Model) all'unico oggetto Table 
presente nelle Tables. Meglio se la tabella � identificata dall'opzione ID; 
utilizzi la funzione GetElementById per ottenere l'oggetto Table e poi ti 
leggi le celle fino ad arrivare a quella contenente il valore.
La condizione ottimale � che il tag HTML contenente il valore sia 
identificato da un ID; otterresti il valore con un sol colpo di 
GetElementById.
Il lavori di ricerca si complica se:
- il codice HTML non � scritto bene (es. tag non chiusi)
- la pagina contiente Frame o IFrame
- il valore � visualizzato da un oggetto Flash o similari
- il valore � una immagine
- la pagina web � dinamica e cambia il contenuto
- etc. etc.
Ciao.
-- 
Sergio MAZZA 

 Saluti
La funzione che ti ho suggerito, tira fuori il codice html della
pagina... nel caso dell'esempio una data, ma in caso di un'altra
pagina, tirerebbe fuori il codice sorgente della pagina stessa,
inclusi quindi i dati a te utili... bisognerà a quel punto solo fare
un pharse della variabile per trovare quel che cerchi... tipo instr

> - etc. etc.
Ops... abbiam detto la misma cosa... ;)

 Ops... abbiam detto la misma cosa... ;)
Come disse il Principe: "..abbundadum abbundandis..."...
Ciao.
-- 
Sergio MAZZA 

 un pharse della variabile per trovare quel che cerchi... tipo instr
quindi oltre alle "farse" si puo' trovare anche roba seria?
--
ac


wrote:

dipende dal sito... ;)


wrote:

ops... una "h" :D