www.mikrocontroller.net

Forum: PC-Programmierung C++ - Daten von HTML-Seite holen


Autor: Rolf Küsster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Leute, Hallo liebe Freaks!


Ich habe folgendes Projekt vor:

Ich möchte ein Programm in C / C++ schreiben, welches Daten von einer 
Internetseite holt, z.B. von Wetter.com und möchte bei Start des 
Programms eine Log-Datei erzeugen lassen, wie das Wetter jeden Tag 
ist/war.

Nun zur Frage:

Wie kann ich von einer Seite wie beispielsweise wetter.com Daten holen, 
ohne die Seite zu betrachten. Sprich, lediglich Daten auslesen und diese 
in einer Log- oder Textdatei speichern?

Ich habe schon dran gedacht, den HTML-Code der jeweiligen Seite zu 
analysieren, nur, was ist, wenn an der bestimmten Stelle, an der im 
HTML-Code die Information steht, plötzlich was anderes steht, wenn 
beispielsweise Änderungen auf der Seite stattgefunden haben?


vielen Dank!

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rolf Küsster wrote:
> Wie kann ich von einer Seite wie beispielsweise wetter.com Daten holen,
> ohne die Seite zu betrachten. Sprich, lediglich Daten auslesen und diese
> in einer Log- oder Textdatei speichern?

Prinzipiell so:
1. HTTP-Verbindung (TCP auf Port 80) zum Server (wetter.com) aufbauen
2. Anforderung senden (sowas: "GET / HTTP/1.0" und so weiter)
3. Daten lesen
4. Verbindung abbauen
5. Daten auswerten

Die Verbindung baut man mit den üblichen Funktionen der C-Bibliothek auf 
(socket, read, fread, write, fwrite, ioctl und dergleichen).

> Ich habe schon dran gedacht, den HTML-Code der jeweiligen Seite zu
> analysieren, nur, was ist, wenn an der bestimmten Stelle, an der im
> HTML-Code die Information steht, plötzlich was anderes steht, wenn
> beispielsweise Änderungen auf der Seite stattgefunden haben?
Ganz ehrlich? Ja? Ok -- dann hast du Pech gehabt.

Guck mal, evtl. stellt dein Dienst (wetter.com ..) auch spezielle 
RSS-Feeds oder sowas zur Verfügung, da bist du dann auf der sicheren 
Seite.

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenns denn Visual Studio oder Delphi sein darf, kann das ganze mit sehr 
geringem Aufwand realisiert werden. Die entsprechenden, vorhandenen 
Komponenten erlauben es bereits ohne Programmieraufwand, den HTML Code 
runterzuladen und z.B. in einen String zu kopieren.
Danach kannst Du mit regulären Ausdrücken oder einem eigenen Parser die 
gewünschten Informationen suchen.
Hab früher mal einen Newsticker gemacht, der von Zeitungshomepages 
Schlagzeilen heruntergeladen hat. Am besten Du schaust im HTML Code was 
vor der gewünschten Stelle genau drin steht. Meist konnte ich einfach 
die vorherigen ein- oder zwei HTML Tags für die Suche nehmen. Es muss 
einfach was sein, dass sonst nirgends im HTML Code auftaucht. Dann 
einfach alles vorherige wegschemeissen und bis zum nächsten HTML Tag 
alles kopieren.
Kommt halt drauf an, wie Deine Daten genau aussehen.
Wenn Du das einigermassen schlau machst, geht es auch noch, wenn kleine 
Änderungen an der Homepage vorgenommen werden. Aber man muss natürlich 
immer damit rechnen, dass es mal so umgestellt wird, dass es nicht mehr 
funktioniert und man dann was anpassen muss.

Beitrag #2432129 wurde von einem Moderator gelöscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.