Href auslesen und anzeigen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von zer11.

    Href auslesen und anzeigen

    Hallo,
    Ich möchte die href Links einer Webseite auslesen.
    Der Link ist ein hyperlink in Form eines Bildes.
    Anschließend soll der Link geöffnet werden.

    Was ich bis jetzt gefunden habe:

    VB.NET-Quellcode

    1. For Each ele As HtmlElement In WebBrowser1.Document.Links
    2. If ele.GetAttribute("href") = ">Element's Url Target<" Then
    3. ele.InvokeMember("click")
    4. End If
    5. Next


    Allerdings ist die href bei mir immer unterschiedlich und kann nur durch das Bild ermittelt werden, da dieses immer gleich ist.
    Ist zwar nicht die schönste Methode aber funktioniert für mich. Musst du halt so ändern wie du es brauchst. Ist in C# aber ist im Endeffekt ja das selbe. Da diese komische Codeformatierung aber nicht so recht funktioniert hab ich es dir auf Pastebin gepostet.


    pastebin.com/hQVjut3i


    Falls du fragen wegen der Portierung hast, dann helfe ich dir gerne, hab es halt gerade nur als C# da.
    Hallo,
    Ich habe versucht etwas zu verstehen und mir ein Code daraus gebastelt.
    Nur passiert leider nicht das was es soll, denn er füllt die Richtextbox (tbout) mit nichts (siehe Zeile 7).

    VB.NET-Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. Dim content As String = tbout.Text
    3. Dim words As String() = Regex.Split(content, "href=")
    4. Dim WebC As New WebClient
    5. Dim i As Integer = 1
    6. tbout.Text = Nothing
    7. content = WebC.DownloadString(New Uri("http://www.beispiel.de/"))
    8. For Each word As String In words
    9. Try
    10. Dim temp As String() = Regex.Split(words(i), """")
    11. tbout.Text += temp(1) & Environment.NewLine
    12. Catch
    13. End Try
    14. i += 1
    15. Next
    16. End Sub


    Hierzu muss ich sagen, dass ich mich kaum länger als 30 Stunden mit VB gearbeitet habe und es eher als ein Hobby zur Zeit ansehe und es später für mich nützlich ist, weil ich Informatik studieren möchte.
    Das ist auch der Grund weshalb der Code komisch rüber kommen könnte. Ich musste erst einmal dein C-Sharp Text in VB per Generator wechseln, damit es für mich verständlicher wurde und mit ihm arbeiten konnte.
    Ich habe gedacht das nur der Teil mit den href etwas für mich ist, also habe ich versucht diesen zu verstehen und habe ihn so eingefügt.

    Wo liegt der/die Fehler?

    Grüße
    Hier mal ausn Kopf:

    VB.NET-Quellcode

    1. Function getLinks(Byval QuellCode As String) As List(Of String)
    2. Dim Matches As MatchCollection = Regex.Matches(QuellCode,"<a href=""(.*?)"">")
    3. Dim Links As New List(Of String)
    4. For each Match as Match in Matches
    5. Links.add(Match.Groups(1).Value)
    6. Next
    7. Return Links
    8. End Function



    Glaube das ist so Korrekt.

    MFG, Sinlyu.
    Danke schonmal!

    Wenn ich deine Funktion verwende:

    VB.NET-Quellcode

    1. For Each match In getLinks("www.google.de")
    2. Me.RichTextBox1.Text = match
    3. Next


    Passiert leider nichts.
    Mit links habe ich es auch ausprobiert, auch kein Erfolg.

    Grüße

    Edit:
    Die URL muss durch "WebBrowser2.DocumentText" ersetzt werden, leider funktioniert es immernoch nicht.

    Edit2:

    VB.NET-Quellcode

    1. WebBrowser2.Navigate("www.google.de")
    2. While WebBrowser2.ReadyState <> WebBrowserReadyState.Complete
    3. Application.DoEvents()
    4. End While
    5. For Each match In getLinks(WebBrowser2.DocumentText)
    6. Me.tbout.Text = Me.tbout.Text + match
    7. Next


    Hierbei kommt etwas heraus, leider sind es keine links sondern dieser "Brei":
    Spoiler anzeigen
    /setprefs?prev=http://www.google.de/&amp;sig=0_lnlyhccPgORdNaEFLMMF-dBxPDE=&amp;suggon=2" style="left:-1000em;position:absolute/support/websearch/bin/answer.py?answer=186645&amp;form=bb&amp;hl=de/chrome/index.html?hl=de&amp;brand=CHNG&amp;utm_source=de-hpp&amp;utm_medium=hpp&amp;utm_campaign=de" onclick="google.promos&&google.promos.toast&& google.promos.toast.cl()/mgyhp.html" onclick="google.promos&&google.promos.mgmhp&& google.promos.mgmhp.cp()/intl/de/ads//services//intl/de/policies/https://plus.google.com/117570067846637741468" rel="publisher/intl/de/about.htmlhttp://www.google.de/setprefdomain?prefdom=US&amp;sig=0_DtWOOISXqHFOQYO1IZ1R4onLuC0=" id="fehl

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „zer11“ ()