Nel precedente post abbiamo visto come è possibile estrarre il testo semplice da una pagina HTML registrata sul disco fisso. In questo post, invece, vedremo come è possibile scaricare il contenuto HTML di una pagina web, fornendo semplicemente l’URL, e come da questa è possibile estrarre il testo semplice.
Procediamo per gradi: innanzi tutto creiamo una nostra classe (ScaricaURL) per gestire la comunicazione con il web server.
Imports System.Text
Imports System.IO
Imports System.Net
Public Class ScaricaURL
Private m_strURL As String
Public Sub SetURL(ByVal strURL As String)
m_strURL = strURL
End Sub
Public Function Scarica() As String
Dim wreq As WebRequest = WebRequest.Create(m_strURL)
Dim wres As WebResponse = wreq.GetResponse()
Dim iBuffer As Integer = 0
Dim buffer( 128 ) As [Byte]
Dim stream As Stream = wres.GetResponseStream()
iBuffer = stream.Read(buffer, 0, 128 )
Dim strRes As New StringBuilder(“”)
While iBuffer <> 0
strRes.Append(Encoding.ASCII.GetString(buffer, 0, iBuffer))
iBuffer = stream.Read(buffer, 0, 128 )
End While
Return strRes.ToString()
End Function
End Class
Successivamente inseriamo in un form: due pulsanti (Button1 e Button2) e un textbox (TextBox1). Quest’ultimo dovrà essere configurato come nel post precedente: proprietà Multiline a True e Scrollbar verticale.
Il codice dei gestori degli eventi Click dei due pulsanti sono i seguenti:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim URL As String
URL = “http://community.visual-basic.it/mario/” & _
“archive/2008/06/29/23164.aspx”
Dim objScaricaURL As New ScaricaURL
objScaricaURL.SetURL(URL)
Me.TextBox1.Text = objScaricaURL.Scarica
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
Dim URL As String
URL = “http://community.visual-basic.it/mario/” & _
“archive/2008/06/29/23164.aspx”
Dim objScaricaURL As New ScaricaURL
objScaricaURL.SetURL(URL)
Me.TextBox1.Text = _
System.Text.RegularExpressions.Regex.Replace( _
objScaricaURL.Scarica, “<[^>]*>”, “”)
End Sub
End Class
Vedrete quindi che premendo il primo pulsante il programma scaricherà la pagina e visualizzerà il relativo codice HTML, mentre nel secondo caso scaricherà la pagina ed estrarrà solamente il testo semplice, eliminando tutti i tag HTML.
ottimo, ma se per richiedere la pagina devo mandare dei dati col metodo POST come posso fare?
"Mi piace""Mi piace"
Grazie mi è risultato molto comodo
"Mi piace""Mi piace"
Grazie, funziona e mi serviva! 🙂
"Mi piace""Mi piace"
Ottimo… grazie… ma il sorgente che mi estrae e diverso da quello che vedo se apro “visualizza sorgente di chrome” ….. nella pagina della quale voglio estrarre il sorgente c’è una grid con dei dati … che vedo solo nel sorgente di chrome.
C’è una spiegazione ?
Grazie
Mary
"Mi piace""Mi piace"
Non saprei, probabilmente Chrome tratta diversamente le pagine dinamiche rispetto al controllo WebBrowser (che dovrebbe essere basato su IE)…
"Mi piace""Mi piace"
Grazie … ora provo ad aprire il sorgente con IE … vediamo com’è… grazie ancora.
"Mi piace""Mi piace"