Tipp 0186 Links aus Website auslesen
Autor/Einsender:
Datum:
  Michael Werner
30.10.2008
Entwicklungsumgebung:   VB.Net 2008
Framework:   2.0
Der Tipp zeigt, wie man mit RegularExpressions Internetadressen aus einer Website herausfischen kann. Zunächst wird die Website mit der Methode GetDownloadData(url) einer Instanz von System.Web.WebClient ausgelesen. Aus dem String werden nun mit einem RegEx-Ausdruck alle Links extrahiert und in einer Liste ausgegeben.
 
Imports System.Text.RegularExpressions
Imports System.Text.Encoding
Imports System.Net

Public Class Form1

  Dim strHtmlText As String

  Function ReadHTML(ByVal url As String) As String
    Try
      Cursor = Cursors.WaitCursor
      Label1.Text = "Bitte warten...!"
      Label1.Refresh()

      Dim wc As New WebClient
      Dim res As String = UTF8.GetString(wc.DownloadData(url))
      Cursor = Cursors.Default
      Return res
    Catch ex As WebException
      Label1.Text = "Verbindungsfehler!"
      Label1.Refresh()
      lstLinkList.Items.Clear()
      MessageBox.Show(ex.Message, "Fehler bei der Verbindung", _
         MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
      Cursor = Cursors.Default
      Return ""
    End Try
  End Function

  Sub FindHrefs(ByVal inputString As String)
    Dim r As Regex
    Dim m As Match
    Dim regString As String = _
        "href\s*=\s*(?:""(?<1>[^""]*)""|(?<1>\S+))"

    r = New Regex(regString, _
        RegexOptions.IgnoreCase Or RegexOptions.Compiled)
    m = r.Match(inputString)
    lstLinkList.Items.Clear()

    While m.Success
      If m.Groups(1).Value.StartsWith("http") Then
        lstLinkList.Items.Add(m.Groups(1).Value) '& " an Pos.: " _
           & m.Groups(1).Index.ToString())
      End If
      m = m.NextMatch()
    End While

    Label1.Text = "Gefunden: " & lstLinkList.Items.Count.ToString
  End Sub

  Private Sub btnFind_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles btnFind.Click
    strHtmlText = ReadHTML(TextBox1.Text)
    If strHtmlText <> "" Then
      FindHrefs(strHtmlText)
    End If
  End Sub

End Class
 
Weitere Links zum Thema
HTML-Seite auslesen
Textsuche einschließlich Metazeichen

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (19 kB) Downloads bisher: [ 540 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Donnerstag, 19. Januar 2012