www.mikrocontroller.net

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

Autor: Rolf Küsster (Gast)
Datum: 01.07.2008 15:29

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 Pauli (haku) Benutzerseite
Datum: 01.07.2008 15:34

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: 01.07.2008 17:25

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.

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net