<table> aus Website auslesen und anzeigen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von eiPod.

    <table> aus Website auslesen und anzeigen

    Hallo!
    Vorab: Ja, ich habe gesucht aber nichts passendes gefunden!

    Ich würde gerne die Daten dieser Website der
    ÖBB auslesen und in einem Programm anzeigen lassen.
    Ich möchte aber nicht die Seite herunterladen und speichern, sondern die Informationen live auslesen.
    Mir ist klar, das ich den Quellcode nach etwas automatisch durchsuchen muss, aber was? Quasi den gesammten Inhalt zwischen <table> und </table>. Ich würde dann das Ganze gerne in so einer Listen-Ansicht ausgeben, wie geht das am effektivsten?

    Ich bekomme es schon hin, den Website-Quellcode zu durchsuchen, aber ich möchte alle Zeilen anzeigen!

    Vielen Dank für eure Hilfe!
    @eiPod

    Sowas würde ich mit RegEx machen.
    Allerdings komme ich an den richtigen Quelltext nicht ran.
    Hier aber ein Beispiel wie du den Startbahnhof auslesen kannst.
    Das Codeformat ist bei RegEx immer gleich. Nur das Suchmuster (String) ist anders.
    [Allgemein] Regular Expressions von 0 an

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Text.RegularExpressions
    3. Public Class Form1
    4. Public WithEvents w As New Net.WebClient()
    5. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    6. w.DownloadStringAsync(New Uri("http://fahrplan.oebb.at/bin/stboard.exe/dn?L=vs_scotty.vs_liveticker&evaId=1290401&boardType=dep&productsFilter=1111111111111111&dirInput=&tickerID=dep&start=yes&eqstops=true&showJourneys=12&additionalTime=0"))
    7. End Sub
    8. Private Sub w_DownloadStringCompleted(ByVal sender As Object, ByVal e As System.Net.DownloadStringCompletedEventArgs) Handles w.DownloadStringCompleted
    9. Dim quellcode As String = e.Result
    10. quellcode = quellcode.Replace(vbCrLf, "")
    11. Dim r As New Regex("id=.station.>(?<bhf>(.*?))<.div>")
    12. Dim matches As MatchCollection = r.Matches(quellcode)
    13. For Each m As Match In matches
    14. If Not m.Value = "" Then
    15. MessageBox.Show(m.Groups("bhf").Value)
    16. End If
    17. Next
    18. End Sub
    19. End Class
    Bilder
    • quelltext.png

      3,94 kB, 325×82, 181 mal angesehen
    @LaMiy
    Warum arbeitetst du beim RegEx-Pattern mit Punkten für Sonderzeichen? Man kann diese auch "escapen":
    id=.station.>(?<bhf>(.*?))<.div>" -> "id=\""station\"">(?<bhf>(.*?))<\/div>"

    @eiPod
    Es geht auch so:

    VB.NET-Quellcode

    1. Dim elements As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("DeinTag zum bsp.input,a,...")
    2. For x = 0 As Integer To elements.Count - 1
    3. MsgBox(elements(x).InnerText)
    4. Next

    Trotzdem danke

    Sorry das ich erst jetzt dazukomme...

    @LaMiy Das funktioniert soweit ganz gut...
    @nafets3646 Verstehe ich nicht ganz, es ist vielleicht "schöner" aber egal

    Das Problem das ich noch habe ist, dass ich jetzt ganz wunderbar Stationsnamen und anderes auslesen kann, aber die Abfahrtsinformationen sind eben nicht direkt in der HTML gepeichert.
    Ich habe geschaut, aber ich finde einfach nicht den "Speicherort" dieser Informationen.

    Ich glaube, ich geb auf! Webbrowser in die Form, Form maximiert im Form-Border-Style None anzeigen - fertig! :)

    Es war ein Versuch, wenn jemand noch etwas weiß - bitte! - werde ich ein bisschen weiter probieren, aber es ist nicht so wichtig!

    Trotzdem Danke!