Hey Leute,
Ich habe eine Funktion im Internet gefunden um links aus HTML Seiten auzulesen, das ist diese:
Sollte auch alles gut funktionieren, aber wenn ich z.b The Coderz nehme Zeigt er mir nur Folgende Links an:
So hab ich die Funktion verwendet:
Jetzt wollte ich wissen wo der Fehler liegt bzw. ob jemand eine bessere Methode kennt (besser Funktion) um Links auszulesen. (Kein Webbrowser).
Freue mich über Antworten
Mfg
Confix
Ich habe eine Funktion im Internet gefunden um links aus HTML Seiten auzulesen, das ist diese:
VB.NET-Quellcode
- Public Function FindHrefs(ByVal inputString As String) As List(Of 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)
- Dim bla As New List(Of String)
- While m.Success
- If m.Groups(1).Value.StartsWith("http") Or m.Groups(1).Value.StartsWith("www.") Then
- bla.Add(m.Groups(1).Value)
- End If
- m = m.NextMatch()
- End While
- Return bla
- End Function
Sollte auch alles gut funktionieren, aber wenn ich z.b The Coderz nehme Zeigt er mir nur Folgende Links an:
VB.NET-Quellcode
- http://the-coderz.de
- http://the-coderz.de/Board
- http://the-coderz.de/Board/?coderzStyleType=2
- http://the-coderz.de/Board/userlogin.html
- http://the-coderz.de/Board/index.php?page=Register
- http://the-coderz.de/Board/index.php?form=Search&action=unread
- http://the-coderz.de/Board/index.php?form=Search&action=unreplied
- http://the-coderz.de/Board/index.php?form=Search&action=24h
- http://the-coderz.de/Board/index.php?form=Search
- http://the-coderz.de/Board/index.php?form=Search
- http://the-coderz.de/Board/index.php?page=Index
So hab ich die Funktion verwendet:
VB.NET-Quellcode
- For Each bla In FindHrefs(qlltxt)
- If bla.EndsWith(".css") Or bla.EndsWith(".ico") Or bla.EndsWith(".jpg") Or bla.EndsWith(".png") Or bla.EndsWith(".gif") Or bla.EndsWith(".exe") Then
- GoTo 10
- End If
- ' Anfang IF
- If bla.EndsWith("/") Then
- bla = bla.Remove(bla.Length - 1, 1)
- End If
- ' Ende if
- ' Anfang if
- If bla.Contains("www.") Or bla.Contains("http://") Then
- bla = bla.Replace("www.", Nothing)
- If Not bla.Contains("http://") Then
- bla = "http://" & bla
- End If
- Else
- GoTo 10
- End If
- ' Ende if
- ' Anfang schleife
- For Each blu In File.ReadAllText(sburls).Split(vbCrLf)
- If blu = bla Then
- vorhanden = True
- End If
- Next
- ' Ende schleife
- ' anfang if
- If vorhanden = False Then
- ' Hier füge ich die URLS Hinzu
- End If
- ' ende if
- 10:
- Next
Jetzt wollte ich wissen wo der Fehler liegt bzw. ob jemand eine bessere Methode kennt (besser Funktion) um Links auszulesen. (Kein Webbrowser).
Freue mich über Antworten
Mfg
Confix