Webpage laden - Werte auslesen



  • Hallo Leute,

    ich hätte da wiedermal ein Problem aber irgendwie fehlt mir die passende Idee zur umsetzung.

    Also ich möchte ne Wegpage einlesen (zb Wetter oder Aktienkurs) und diese Werte dann speichern bzw. grafisch als Diagramm darstellen.

    1. Wie lade ich am besten die webpage ?
    Mit webrequest und webresponse? und den gesamten inhalt in einem string ablegen?
    Oder macht da etwas anderes mehr sinn?

    2. Wie kann ich am besten die Werte aus der Page auslesen bzw. parsen?
    hab da mal was mit regex gelesen, aber keine idee dazu.

    Oder wie würdet ihr das am einfachsten machen?

    Vielen dank 🙄
    lg Lara



  • Wieweit kannst Du Dich eigentlich verlassen, dass die Dokumentstruktur konstant bleibt? Gibt es XML oder andere fest definierte Dokumenttypen von dieser Seite?



  • Lara* schrieb:

    1. Wie lade ich am besten die webpage ?
    Mit webrequest und webresponse? und den gesamten inhalt in einem string ablegen?
    Oder macht da etwas anderes mehr sinn?

    Kannst das hier verwenden, die Methode erfordert GET, sollte aber auch mit POST funktionieren:

    private static string getContentFromSite(string url)
            {
                HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(url);
                hwr.Method = "GET";
                hwr.Credentials = CredentialCache.DefaultCredentials;
                using(Stream s = hwr.GetResponse().GetResponseStream())
                {
                    using (StreamReader r = new StreamReader(s, Encoding.GetEncoding(1252)))
                    {
                        return r.ReadToEnd();
                    }
                }
            }
    


  • witte schrieb:

    Wieweit kannst Du Dich eigentlich verlassen, dass die Dokumentstruktur konstant bleibt? Gibt es XML oder andere fest definierte Dokumenttypen von dieser Seite?

    also ich hätte zb an diese Seite mit Aktienkursen gedacht:
    http://www.ls-d.de/L-S-Aktien.100.0.html

    basiert soweit ich das im Quelltext gesehn habe auf xml tags

    wie macht man das am besten wenn ich jetzt nur die Werte von einer bestimmten Aktie auslesen will?

    🙄



  • Ganz einfach geht der Download mit WebClient.

    WebClient wc = new WebClient();
    string DownLoadGet(string url,string parameter)
    {
     return wc.DownloadString(url +"?" + parameter);
    }
    
    string DownLoadPost(string url,string parameter)
    {
      return wc.UploadString(url,parameter);
    }
    

    Tabellen zerlegt man gut mit Split zerlegen:

    List<Aktie> Get_Aktien(string html)
    {
      List<Aktien> aktien_liste = new <List<Aktie>()
      string table_body = html.Substring(html.IndexOf("<tbody>")+7);
      table_body = table_body.Substring(0,table_body.IndexOf("</tbody>");
      string[] aktien_strings = table_body.Split(new string[]{"</tr>"},StringSplitOptions.RemoveEmptyEntrys);
      foreach(string aktien_string in aktien_strings)
      {
        string[] daten = aktien_string.Split(new string[]{"</td>"},StringSplitRemoveEmptyEntrys);
        Aktie neue_aktie = new Aktie();
        Aktie.WKN = daten[0].SubString(daten[0].IndexOf(">"));
        Aktie.Name = daten[1].SubString(daten[1].IndexOf(">"));
        .....
        aktien_liste.Add(neue_aktie);
      }
      return aktien_liste;
    }
    


  • in welchem Header finde ich WebClient?
    Danke schon im Vorraus



  • Yafo schrieb:

    in welchem Header finde ich WebClient?
    Danke schon im v******

    in "google.h"



  • Der Seiten Quelltext (HTML) ist ja sogar mal 1A und Sauber 😉



  • @Andorxor: danke, das funktioniert ja ausgezeichnet 😋

    ich hätte da noch eine andere frage: und zwar werden zb. bei der oben genannten Seite die Werte der Aktienkurse upgedatet (siehe gelbe darstellung). kann man irgendwie auf ne Webpage horchen, ob sich etwas ändert?
    Oder hilft da nur das zyklische Pollen?

    Danke, Lg 😕



  • Bietet WebService irgendein Subscriber Dienst wie rss feed an?
    ja: Prüfen auf Verwendbarkeit
    nein: Wird die Datenaktualisierung der Seite in den Headerdaten übermittelt? z.B. sowas wie Gültig bis?
    ja: Prüfen auf Verwendbarkeit
    nein: zyklisches Pollen (evtl reicht Abfrage des HTTP-Request HEAD aus.


Anmelden zum Antworten