mario.deghetto

Visual Basic & .NET
posts - 319, comments - 204, trackbacks - 0

#41: Scaricare il contenuto HTML di una pagina web con VB.NET

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.

Print | posted on venerdì 15 gennaio 2010 5.52 |

Feedback

Gravatar

# re: #41: Scaricare il contenuto HTML di una pagina web con VB.NET

Ciao, è possibile aggiungere a tutto questo la possibilità di programmare determinati orari in cui eseguire il download?
Sono giorni che cerco un programma qualsiasi che legga il contenuto di una pagina e lo salvi sul pc in un file txt (il massimo sarebbe con data e ora nel nome) ad intervalli di mezz'ora!
Di cosa si tratta? La pagina con i log del mio sito e non ho altri modi!
Grazie intanto per il codice.

Michell
06/05/2010 21.42 | Michell
Gravatar

# re: #41: Scaricare il contenuto HTML di una pagina web con VB.NET

Direi che ci sono solo due possibilità per programmare un'azione in momenti precisi o a intervalli regolari:
1) hai un PC sempre acceso con un'applicazione che tramite un timer richiama una pagina web, la quale a sua volta ti espone i contenuti che ti servono
2) il servizio di hosting offre automaticamente dei servizi schedulati in background (per esempio i nuovi servizi di Aruba.it).
Non credo che ci siano alternative a queste due soluzioni...
Ciao
25/05/2010 6.02 | Mario De Ghetto
Gravatar

# re: #41: Scaricare il contenuto HTML di una pagina web con VB.NET

Grazie mille, gentilissimo

Michell
25/05/2010 14.26 | Michell

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 4 and 3 and type the answer here:

Powered by: