Se lo vuoi fare da VB.Net, puoi caricare l'intero HTML della pagina,
ma solo dopo che si è dinamicamente composta, visto che è un sito di trading, ci saranno degli scripts che dovranno essere completati prima di mostrare la pagina completa e se hai provato con WebBrowser, avrai fallito.
In VB.Net si possono usare le dll di MozillaFirefox, basta importare il pacchetto:
Geckofx45 usando la sezione di VS gestisci pacchetti NuGet.
Una volta importato il pacchetto, quando sei in progettazione, avrai lo strumento
GeckoWebBrowser:
GeckoWebBrowser si usa come WebBrowser, ma quando si scatena l'evento
DocumentCompleted, gli sripts saranno stati tutti caricati nel server interrogato.
Public Sub GeckoWebBrowser_DocumentComplete(sender As Object, e As EventArgs) Handles GeckoWebBrowser.DocumentCompleted
' la pagina si è caricata completamente, deve essere compilato l'HTML dinamico
Label1.Text = "Sito caricato..."
Timer1.Interval = 1000 ' tempo abbondante anche per siti con molti scripts da tradurre
Timer1.Enabled = True ' il codice in Timer3 viene eseguito in ritardo (tipo Sleep)
End Sub
GeckoWebBrowser nel PC locale li dovrà tradurre in HTML, per cui l'istruzione che legge l'HTML è meglio che stia dentro a un timer, o dopo uno Sleep():
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Timer1.Enabled = False
HTMLletto = GeckoWebBrowser.Document.GetElementsByTagName("html")(0).InnerHtml ' carico l'HTML in HTMLletto
End Sub
Una volta ricevuto tutto l'HTML, per trovare i dati di interesse si possono usare le istruzioni apposite, oppure se si conosce l'identificativo univoco del dato di interesse, basta usare IndexOf:
Dim pos1 As Integer = HTMLletto.IndexOf(">VALUTA BITCOIN ", 1)
Se i dati da leggere sono più di uno e in sequenza con lo stesso identificativo, è sufficiente un ciclo che aggiorna la posizione di ricerca.
Ma forse questo fa parte di un'ulteriore domanda.