Wer Rechtschreibfehler findet darf sie behalten
Alle links aus webseite herausfinden
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von diylab.
-
-
Ganu was du suchst. Dolative WebLib 0.3.1. Mit Advanced.GetLinksFromPage.
Wird als Array aufeglistet. -
-
Mr. BlackStar schrieb:
Ganu was du suchst. Dolative WebLib 0.3.1. Mit Advanced.GetLinksFromPage.
Wird als Array aufeglistet.
Das ist völlig unnötig. Wenn Du schon das WebBrowser-Steuerelement nimmst, dann hast Du schon alle Links zusammen unter <WebBrowser-Instanz>.Document.Links -
-
xtts02 schrieb:
Wenn Du schon das WebBrowser-Steuerelement nimmst...
Wo steht denn im Eingangsposting, dass der TE es benutzt?
Gruß,
Bruno -
diylab schrieb:
xtts02 schrieb:
Wenn Du schon das WebBrowser-Steuerelement nimmst...
Wo steht denn im Eingangsposting, dass der TE es benutzt?
Gruß,
Bruno
Das bezieht sich auf den zitierten Text! Beim nächsten Mal den Beitrag genauer lesen! -
xtts02 schrieb:
Das bezieht sich auf den zitierten Text! Beim nächsten Mal den Beitrag genauer lesen!
Ja da hast Du Recht. Und wo Du Recht hast, da hast Du Recht !
Back to the roots..
Ich würde es so machen:
VB.NET-Quellcode
- Option Explicit On
- Option Strict On
- Imports System.Net
- Imports System.IO
- Imports System.Text.RegularExpressions
- Public Class frmMain
- Private Sub ButtonStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonStart.Click
- ButtonStart.Enabled = False
- Try
- Dim linkPattern As String = "<a href=\""(.*?)\"">(.*?)</a>"
- Dim linkMatches As MatchCollection = Regex.Matches(inetReadFile(TextBoxURL.Text.Trim), linkPattern, RegexOptions.Singleline)
- For Each match As Match In linkMatches
- ListBoxLinks.Items.Add(match.Value)
- Next
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- Finally
- ButtonStart.Enabled = True
- End Try
- End Sub
- Private Function inetReadFile(ByVal sURL As String) As String
- Dim sBuffer As String
- Dim oRequest As WebRequest = WebRequest.Create(sURL)
- oRequest.Method = "GET"
- Try
- Dim oResponse As WebResponse = oRequest.GetResponse()
- Dim oStream As New StreamReader(oResponse.GetResponseStream())
- sBuffer = oStream.ReadToEnd()
- oStream.Close()
- oResponse.Close()
- Return sBuffer
- Catch
- Throw
- End Try
- End Function
- End Class
Sollte dann so aussehen:
LG,
Bruno -
-
Rinecamo schrieb:
Und ich würde es lieber so machen..
Jopp! Warum nicht..
Habe extra auf WebClient.DownloadString verzichtet, aber alles kann, nix muss ... und jeder Jeck is anders :D. Ich Streame lieber..
LG,
Bruno -
-
-
Rinecamo schrieb:
Es ging mir eher um die Try-Catch-Kacke.
Soso - welch ein hartes Wort für diese herrliche Erfindung des Try-Catch-Blocks.
Dann versuche doch mal mit Deiner Methode http://www.vb-paradise.de die Links zu entlocken.
Dann käme der 403er Fehler vom Server.
LG,
Bruno -
Kein Problem:
VB.NET-Quellcode
- Dim R As New Regex("\<a(.*?)<\/a\>")
- Dim wc As New WebClient
- wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0")
- Dim linkMatches As MatchCollection = R.Matches(wc.DownloadString("http://www.vb-paradise.de"))
- ListBoxLinks.Items.AddRange((From match In linkMatches Select match).ToArray())
@AliveDevil
Vermutlich die Linq Abfrage, nur da ich mich noch nie so richtig mit Linq beschäftigt hab, ist mir das im Moment relativ egal. -
Rinecamo schrieb:
wc.Headers.Add ...
Ah verstehe. Nur weil der Server keinen Header bekommt, will er also nicht ausliefern?
Ist das so richtig interpretiert?
~~
Bei LINQ wäre dann aber das 2er Framework nicht möglich - falls das ein Grund für Jemanden ist.
Wird ja hier öfter mal geschrieben: "fahr mal Dein Framework auf 2.0 runter..".
LG,
Bruno -
diylab schrieb:
Rinecamo schrieb:
wc.Headers.Add ...
Ah verstehe. Nur weil der Server keinen Header bekommt, will er also nicht ausliefern?
Ist das so richtig interpretiert?
-
-
So, der Beweis:
Linq ist doppelt so schnell:
VB.NET-Quellcode
- Dim stopwatch As New Stopwatch
- Dim R As New Regex("\<a(.*?)<\/a\>")
- Dim wc As New WebClient
- wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0")
- Dim linkMatches As MatchCollection = R.Matches(wc.DownloadString("http://vb-paradise.de"))
- Dim liste As List(Of Object)
- For x = 0 To 100
- liste = New List(Of Object)
- stopwatch.Start()
- liste.AddRange((From item In linkMatches Select item).ToArray())
- stopwatch.Stop()
- ListBox1.Items.Add(stopwatch.ElapsedTicks)
- stopwatch.Reset()
- Next
- For x = 0 To 100
- liste = New List(Of Object)
- stopwatch.Start()
- For Each item As Match In linkMatches
- liste.Add(item.Value)
- Next
- stopwatch.Stop()
- ListBox2.Items.Add(stopwatch.ElapsedTicks)
- stopwatch.Reset()
- Next
-
-
-
Ähnliche Themen
-
Cubysoft - - Sonstige Problemstellungen
-
4 Benutzer haben hier geschrieben
- Gast (13)
- Rinecamo (6)
- xtts02 (2)
- WeLoveBurgers (1)