Link aus Website auslesen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von discounter.

    Link aus Website auslesen

    Hallo,
    ich wollte mal wissen ob es geht das ich immer die aktuellste Version von CraftBukkit auf dieser Seite herunterladen kann?
    Denn ich kann nicht einfach den Link in meine Prog eingeben, da der sich bei jeder neuen version ändert!
    Also es geht um den Link zu dem der Roten-Button führt.

    Lg
    Discounter
    ManageMe Minecraft Server Zum schnellen Erstellen und Verwalten von eigenen Minecraft Servern!
    les doch mit regex immer den download link aus

    Quellcode

    1. <td>1.2.4-R0.1</td>

    Quellcode

    1. <a class="tooltipd" title="Download CraftBukkit, version
    2. 1.2.4-R0.1"
    3. href="/downloads/craftbukkit/get/00982_1.2.4-R0.1/craftbukkit-dev.jar">


    Tipp: Lad dir mal das Addon Firebug, sehr hilfreich zum elemente untersuchen.
    Ich habe das mal vor ein paar Monaten so gelöst !
    Dort wollte ich Usernamen von Jappy die mit einen Link hinterlegt sind Speichern (Was auch geklappt hat.) :D

    Gruß Mario

    VB.NET-Quellcode

    1. webcode = Me.WebBrowser1.Document.GetElementsByTagName("a")
    2. For Each elemente As HtmlElement In webcode
    3. srcusername = elemente.GetAttribute("href")
    4. If Regex.IsMatch(srcusername, "http://www.jappy.de/user/", RegexOptions.IgnoreCase) Then
    5. srcusername = Regex.Replace(srcusername, "http://www.jappy.de/user/", "", RegexOptions.IgnoreCase)
    6. srcusername = Regex.Replace(srcusername, "\/.*", "", RegexOptions.IgnoreCase)
    7. ListBox1.Items.Add(Regex.Replace(srcusername, "http://www.jappy.de/user/", "", RegexOptions.IgnoreCase))
    8. End If
    9. Next elemente
    Entweder wie vorgeschlagen mit RegEx, oder mit einem WebBrowser-Control. Das letztere finde ich persönlich etwas einfacher.
    Hier ein möglicher Ansatz:
    Als erstes mußt du den HTML-Quellcode anschauen und die Tags identifizieren, die die gesuchte Links beinhalten (siehe Screenshots im Anhang). Wenn Du den Link zu der empfohlenen Version genauer anschaust, siehst Du, dass diese weitere 3 Child-Tags hat: Benennung der Version, Versionsnummer und Dateigröße.
    Also suchst Du jetzt im Quellcode nach alle Links, die 3 Child-Tags haben. So kannst Du schon mal alle andere Links rausfiltern.
    Jetzt nur noch die Benennung der Version vergleichen und das HREF-Attribut auslesen.
    Fertiger Code:

    VB.NET-Quellcode

    1. Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    2. Dim recommended As String = String.Empty
    3. Dim beta As String = String.Empty
    4. Dim dev As String = String.Empty
    5. With DirectCast(sender, WebBrowser).Document
    6. For Each link As HtmlElement In .Links
    7. If link.Children.Count = 3 Then ' 3 Child-Tags: Benennung der Version, Versionsnummer, Dateigröße
    8. Select Case True ' Sucht nach Benennung der Version
    9. Case link.InnerText Like "Recommended Build*" ' Empfohlene Version
    10. recommended = link.GetAttribute("href")
    11. Case link.InnerText Like "Beta Build*" ' Beta-Version
    12. beta = link.GetAttribute("href")
    13. Case link.InnerText Like "Development Build*" ' Entwickler-Version
    14. dev = link.GetAttribute("href")
    15. End Select
    16. End If
    17. Next
    18. End With
    19. Debug.Print("Beta-Version: '{0}'", beta)
    20. Debug.Print("Entwickler-Version: '{0}'", dev)
    21. Debug.Print("Empfohlene Version: '{0}'", recommended)
    22. End Sub
    Bilder
    • vb0.jpg

      90,37 kB, 890×659, 132 mal angesehen
    • vb1.jpg

      59,54 kB, 1.143×361, 107 mal angesehen
    hmpf geht eigentlich auch viel einfacher :
    klick auf link zur website -> ganz oben einmal klick -> und klick auf download Fertig ich meine so oft muss man ja bukkit nicht runterladen und glaub mir keiner kein einziger serveradmin würde ein programm nutzen um einen bukkit server zu verwalten