Option Explicit
Sub Main
Dim ObjIe
Dim s , sOut , i ,ii , TimeStart , sUrl
Dim cTimeOut
Dim cREADYSTATE_COMPLETE ' costante di internet explorer che indica la navigazione completata
cREADYSTATE_COMPLETE = 4 ' la costante vale 4 (secondo documentazione)
cTimeOut = 30 ' variabile per gestire il timeout
' imposto un url di prova
sUrl ="https://www.agenziadoganemonopoli.gov.it/portale/monopoli/giochi/gioco-del-lotto/lotto_g/lotto_estr?prog=50&anno=2016"
' istanzio un oggetto internet explorer per navigare sulla link
Set ObjIe = CreateObject("InternetExplorer.Application")
' navigo sulla link
objIE.Navigate2 (sUrl)
' Aspetto che la paginasia caricata
Do While objIE.ReadyState <> cREADYSTATE_COMPLETE
DoEventsEx
Loop
' aspetto che nella pagina sia presente una particolare stringa che gia conosco
' in anticipo cerco in questo caso la stringa "<caption>Estrazione" perche
' in fase distudio navigando a mano sul sito e salvando la pagina html sull hd
' poi riaprendola con un editor di testo mi sono accorto che è quella la stringa che mi
' serve per Iniziare a fare il parsing del file.
' Potrebbe darsi che nella link navigata questa aparticolare stringa non
' esista e quindi il codice gestisce l'uscita dal ciclo do dopo un timeout
s = ObjIe.Document.All(0).outerHTML ' leggo il contenuto della pagina che sto navigando
TimeStart = Timer
i = InStr(s , "<caption>Estrazione")' cerco la stringa conosciuta
Do While i =0
s = ObjIe.Document.All(0).outerHTML' rileggo il contenuto della pagina che sto navigando
i = InStr(s , "<caption>Estrazione") ' ricerco la stringa conosciuta
If Timer -TimeStart > cTimeOut Then Exit Do ' se la stringa non viene trovata dopo il timeout esce
Loop
If i > 0 Then
' scrivo a video il contento della variabile
' continuando al fare il parsing del contenuto di S
' (il parsing si fa individuando delle "stringhe cardine" e poi
' usando le funzioni per le stringhe Instr, Mid , Left , Right e via dicendo)
' e possibile leggere le informazioni che ci servono
'cerco un'altra stringa cardine per limitare il testo da estrarre anche
' questa gia la conoscevo in anticipo
ii = InStr(i ,s,"<h2>Cerca Estrazioni</h2>" ,vbTextCompare )
' gestisco il fatto di aver trovato la stringa oppure no
If ii > 0 Then
sOut = Mid(s , i , ii -i)
Else
sOut = Mid(s , i)
End If
' scrivo a video la stringa.
Call Scrivi(sOut)
Else
' informo che la stringa cercata non c'era
Call Scrivi ("Elemento non trovato")
End If
' chiudo il browser
ObjIe.Quit
' anniento la variabile
Set ObjIe = Nothing
End Sub