![]() |
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
|
|
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (19
kB)
|
Downloads bisher: [ 636 ]
|
|
|