Ciao a tutti!
Come faccio a scaricare il codice HTML di una pagina web?
Con il controllo inet ed il metodo openURL mi preleva solo poche righe del codice, non la pagina intera, all'incirca 1kb.
Grazie.
Ciao a tutti!
Come faccio a scaricare il codice HTML di una pagina web?
Con il controllo inet ed il metodo openURL mi preleva solo poche righe del codice, non la pagina intera, all'incirca 1kb.
Grazie.
so che devi usare il controllo xmlhttp ma non l'ho mai usato![]()
Puoi usare il controllo WebBrowser, ed ottenere l'HTML con:Originariamente inviato da minoz
Ciao a tutti!
Come faccio a scaricare il codice HTML di una pagina web?
Con il controllo inet ed il metodo openURL mi preleva solo poche righe del codice, non la pagina intera, all'incirca 1kb.
WebBrowser1.Document.documentElement.innerHTML
Ciao !
IceCube_HT (VB6 fan Club)
dunque.. con il controllo webBrowser avevo gia provato.
Ma il problema è che devo fare un ciclo e scaricare più di una pagina.
Se all'interno del ciclo faccio
For i=1 to n
WebBrowser1.Navigate(URL(i))
codice = WebBrowser1.Document.documentElement.innerHTML
Next
Il codice che ottengo è quello della pagina al ciclo precedente oppure una parte incompleta del codice.
Con il controllo INET invece ho il problema che mi scarica solo 1Kb del codice della pagina.
Ci sono altri modi, avete degli esempi da darmi?
Grazie
Beh, certo !Originariamente inviato da minoz
dunque.. con il controllo webBrowser avevo gia provato.
Ma il problema è che devo fare un ciclo e scaricare più di una pagina.
Se all'interno del ciclo faccio
For i=1 to n
WebBrowser1.Navigate(URL(i))
codice = WebBrowser1.Document.documentElement.innerHTML
Next
Il codice che ottengo è quello della pagina al ciclo precedente oppure una parte incompleta del codice.![]()
Se hai piu' URL (infatti hai un array URL(i)), dovrai avere anche piu' pagine HTML..,(dovrai dimensionare 'codice' come array, quindi codice(i) ).
Inoltre il metodo WB.Navigate e' asincrono, cioe' l'elaborazione (Navigate) NON si interrompe fino a quando tutta la pagina e' caricata... Quindi tu vai a leggere il contenuto della pagina MENTRE la sta' caricando (che sia lo stesso problema che hai con INET..?)
Prova a leggerti un po' di documentazione sul controllo su MSDN...
Ciao !
IceCube_HT (VB6 fan Club)
Se vuoi una traccia di codice, apri un nuovo progetto e nel Form1 inserisci un controllo WebBrowser e un pulsante. Nel codice del Form inserisci:
Che te ne pare...? Ovviamente e' da perfezionare.... Ciao !codice:Option Explicit Dim FINE As Boolean Public Function GetHTML(ByVal URL As String) As String 'restituisce il codice HTML dall'URL specificato FINE = False WebBrowser1.Silent = True WebBrowser1.Navigate URL Do DoEvents Loop Until FINE GetHTML = WebBrowser1.Document.documentElement.innerHTML End Function Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) 'evento generato al termine del completamento di una pagina o frame FINE = True End Sub Private Sub Command1_Click() ' e' solo un esempio di lista di indirizzi da leggere.... Const N = 2 Dim i As Integer, ind( N ) As String, codice ( N ) As String ' impostiamo la lista indirizzi..... ind(0) = "http://www.html.it/" ind(1) = "http://forum.html.it/forum/showthread.php?s=&postid=9514656#post9514656" For i = 0 To N - 1 codice( i ) = GetHTML( ind(i) ) ' qui stampiamo semplicemente il testo HTML nella finestra di Debug... Debug.Print "*********************** "; ind(i) Debug.Print codice ( i ) Next MsgBox "FINE: vedi finestra di Debug !" End Sub
IceCube_HT (VB6 fan Club)