PDA

View Full Version : [VB6] Leggere il codice html di una pagina web


wingman87
26-06-2006, 21:11
Vorrei, data una pagina web, poter leggere il suo codice html come una stringa, in modo da poterci fare i miei lavoretti e le mie ricerche.. Come si fa? Grazie!

mynos79
26-06-2006, 21:26
E' facile, basta aggiungere il componente "Microsoft Internet Transfer Control" ovvero INET ...

Ecco un esempio di una funzione che richiede l' indirizzo ed il controllo inet e restituisce una stringa col codice html:

Function Url2Html(indirizzo As String, controlloINET As Inet) As String
On Error Resume Next
Dim html As String
Dim b() As Byte

b() = controlloINET.OpenURL(indirizzo, 1)
html = ""
For i = 0 To UBound(b) - 1
html = html + Chr(b(i))
Next

Url2Html = html

Exit Function
End Function
Se hai una textbox di nome Text1 ed il controllo inet di nome Inet1, puoi usare la funzione così:
Text1.Text = Url2Html("http://www.mynos.com", Inet1)

wingman87
26-06-2006, 21:53
Grazie!
Ma cosa vogliono dire queste righe?
On Error Resume Next
b() = controlloINET.OpenURL(indirizzo, 1)

mynos79
26-06-2006, 22:23
On Error Resume Next
E' la gestione degli errori di vb6 ... significa che se capita un qualsiasi errore nelle istruzioni seguenti allora chiude la sub o function e procede con quello che viene dopo saltando i comandi che generano l' errore (in questo caso se per caso la pagina non esiste o non c'è la connessione ...)
b() = controlloINET.OpenURL(indirizzo, 1)[/QUOTE]
Il metodo OpenUrl del controllo INET restituisce il codice sorgente html della pagina come un array di byte (dove ovviamente ogni elemento dell' array è un byte della pagina).
Una volta che ho l' array di byte completo, lo ciclo con un FOR e salvo nella variabile "html" tutti i byte convertiti in caratteri (perchè lui invece li salva come codice ascii ovviamente).
Tutto qua ...
In caso succeda qualche errore, l' istruzione "on error resume next" passa all' istruzione "exit function" così da uscire senza bloccare il programma.
Le istruzioni "on error resume next" oppure "on error goto 'etichetta'" sono molto usate quando si eseguono comandi che possono generare errori come in questo caso, oppure ad esempio quando si apre una finestra di dialogo tramite un CommonDialog (in caso il file non esistesse), etc etc ...

wingman87
26-06-2006, 22:26
E quell' "1" nel metodo OpenUrl?
Grazie, 6 molto gentile

mynos79
26-06-2006, 23:02
Il metodo OpenUrl ha questa sintassi:

OpenUrl(indirizzo as string, datatype as integer)

dove indirizzo è una stringa contenente l' url della pagina da leggere, datatype è un numero (opzionale, si può omettere) che indica il tipo di dati da leggere, in questo caso il valore di default è 1, ovvero byte (codice ascii), anche se lo omettevo era come se avessi scritto 1.
Sulla documentazione msdn puoi trovare gli altri valori, ma in genere si usa sempre 1 o niente (che appunto equivale a 1).

wingman87
26-06-2006, 23:29
Ok, grazie mille! Scusa x tutte ste domande...

cosisal
25-05-2007, 21:08
ciao a tutti io avrei bisogno di prelevare il sorgente html di una pagina, ma in vbscript nn mi serve potreste darmi una mano in rete ho trovato qualcosa in javascript

var Pagina = "http://www.google.it";
var oHTTPReq = new XMLHttpRequest();
oHTTPReq.open("GET", Pagina, false);
oHTTPReq.setRequestHeader("Content-Type", "text");
oHTTPReq.send(null);
if(oHTTPReq.status == 200)
var strRc=oHTTPReq.responseText;

ma ho cercato di usarlo con scarsi risultati, se conoscete un modo in PHP mi rendete l'uomo piu felice del mondo....

fatemi sapere ciao e grazie