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


von Rolf Küsster (Gast)


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!

von Sven P. (Gast)


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.

von Johnny (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.