Alle Bilder einer Webseite auflisten

  • VB.NET

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

    Alle Bilder einer Webseite auflisten

    Hallo zusammen!

    Mein Problem besteht darin, dass ich nicht weiß, wie man alle
    Bilder einer Webseite auflisten kann (als List(Of Image)).
    Im Webbrowser-Control gibt es ja bereits die Funktionalität
    Webbrowser1.Document.Images, jedoch sind diese nicht als Bilder aufge-
    listet, sondern nur als HTMLElementCollection.
    Dort gibt OuterHTML den Knoten des Bildes zurück
    ( z. B. <IMG SRC="" WIDTH="" ... />)
    Nun habe ich das Problem, dass ich nicht weiß,
    wie ich diesen String zerlegen muss, um an
    den reinen Bildpfad zu gelangen ?(.
    Ich hörte bereits von RegEx.Split, allerdings
    finde ich kein Split-Muster (es soll ja für jede Webseite
    funktionieren).
    Wenn ich den Bildpfad hätte, würde ich die ImageLocation einer
    PictureBox auf diesen setzen - fertig.
    Aber dieser fehlt mir leider noch :(
    Kennt jemand eine Möglichkeit?
    Geht es doch mit RegEx?
    Oder gibt es andere Lösungen?

    Vielen Dank für Antworten,
    VisualBasic-Frager

    Hallo,

    @VisualBasic-Frager:

    schau dir mal RegEx an.

    Da kannst du dann die IMG-Tags raussuchen und den
    SRC-Wert raussuchen und dann mit DownloadFile herunterladen.

    MFG

    Alex-Digital :D
    ~ Alex-Digital :D

    if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D
    Hallo AlexDigital,

    Unter RegEx habe ich nur Funktionen gefunden,
    die das HTML und das Muster zum bearbeiten brauchen.
    Aber das SRC-Tag von IMG kann ja an beliebiger Stelle
    stehen (als Erstes, Letztes Tag).
    Eine wie von dir beschriebene Funktion habe ich
    noch nicht gefunden.
    Kannst du mir die von dir beschriebene Funktion nennen?

    VisualBasic-Frager

    @VisualBasic-Frager

    Sieh dir das hier mal an.
    Du holst quasi nur aus dem Quelltext die URL der Bilder heraus.
    Bei Unverständlichkeiten, frag nach.
    [Allgemein] Regular Expressions von 0 an

    Code

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Text.RegularExpressions
    3. Public Class Main
    4. Private WithEvents wc As New Net.WebClient()
    5. Public uri As String = "http://www.html-seminar.de/"
    6. Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. wc.DownloadStringAsync(New Uri(uri))
    8. End Sub
    9. Private Sub wc_DownloadStringCompleted(ByVal sender As Object, ByVal e As System.Net.DownloadStringCompletedEventArgs) Handles wc.DownloadStringCompleted
    10. Dim quelltext As String = e.Result
    11. quelltext.Replace(vbCrLf, "")
    12. Dim r As New Regex("<img.*src=\""(?<url>(.*?))\""")
    13. Dim matches As MatchCollection = r.Matches(quelltext)
    14. For Each m As Match In matches
    15. MessageBox.Show(GetAbsolutUrl(m.Groups("url").Value))
    16. Next
    17. End Sub
    18. ''' <summary>
    19. ''' Methode die die Adressen verknüpft, da auf der Beispielseite keine absolute Pfadangabe ist
    20. ''' </summary>
    21. ''' <param name="input">Der Restpfad</param>
    22. ''' <returns>Absolut as String</returns>
    23. Public Function GetAbsolutUrl(ByVal input As String) As String
    24. Return IO.Path.Combine(uri, input)
    25. End Function
    26. End Class