Forum: PC-Programmierung Daten aus Webseite mit C/C++ ausläsen


von Robin F. (gehacktes)


Lesenswert?

Nabend,

ich möchte mithilfe von C oder C++ aktuelle Wetterdaten aus dem Internet 
beziehen.
Ich hab mir gedacht, z.B. von Wetter.com oder ähnlichen Seiten das 
aktuelle Wetter heraus zu suchen und in irgend einer Form auf den PC 
abzulegen.

Ist das mit C oder C++ ohne weiteres möglich, Daten aus dem Internet zu 
suchen und zu kopieren, um diese dann auf dem Rechner zu speichern?
Wenn ja, gibt es etwas Lesestoff für diese Thematik? Ich hab bisher 
leider nix brauchbares im Internet finden können, werd mich aber 
natürlich weiter belesen.
Ich kenn mich auch etwas mit html und css aus. Vielleicht kann man ja 
einfacher damit die Seiten durchforsten und die für mich relevanten 
Daten aus sieben und dann mit C oder C++ weiter verarbeiten.

Ist es sinnvoll, von Wetter.com oder ähnlichen Seiten sich Wetterdaten 
zu beziehen oder gibt es für solche Zwecke spezielle Seiten? Vielleicht 
hat jemand von euch damit ja schon Erfahrung gemacht.

Gruß & Danke

: Bearbeitet durch User
von sebi707 (Gast)


Lesenswert?

Das abrufen einer Website aus C/C++ heraus ist einigermaßen kompliziert 
und erfordert eine externe Library. Ich würde für diese Aufgabe von C 
auf jeden Fall abraten, da es sehr umständlich ist diese ganzen alten C 
Libraries zu benutzen. C++ ist so einigermaßen für die Aufgabe geeignet. 
Eigentlich ist sowas eher eine Aufgabe für C# oder Java.

Wenn man die Seite erstmal auf seinem PC hat kann das Suchen der 
gewünschten Informationen natürlich beliebig schwierig sein. Wenn man 
Glück hat steht es immer an der gleichen Stelle. Hier könnten regular 
expressions nützlich sein die richtige Stelle im HTML Quelltext zu 
finden.

Wenn es nur ums Wetter geht gibt es sicherlich Seiten, die solche 
Informationen in einem einfach weiterzuverarbeitenem Format ohne HTML 
Gerüst drumherum anbieten.

von Anon (Gast)


Lesenswert?


von sebi707 (Gast)


Lesenswert?

wetter.com bietet selbst auch eine API wie ich gerade herausgefunden 
habe: http://www.wetter.com/apps_und_mehr/website/api/dokumentation/#

von Tom K. (ez81)


Lesenswert?

>Ist das mit C oder C++ ohne weiteres möglich, Daten aus dem Internet zu
>suchen und zu kopieren, um diese dann auf dem Rechner zu speichern?

Das Googlewort heißt web scraping. Und der Aufwand, eine dafür geeignete 
Scriptsprache mit passenden Libraries zu lernen, ist wahrscheinlich 
geringer, als C++ oder C zu benutzen. Für Python gibt es z.B. 
BeautifulSoup, für Perl und Ruby sicherlich ähnliches.

von Peter II (Gast)


Lesenswert?

Robin F. schrieb:
> Ist das mit C oder C++ ohne weiteres möglich, Daten aus dem Internet zu
> suchen und zu kopieren, um diese dann auf dem Rechner zu speichern?

ja, wenn man viel zeit hat.

> Wenn ja, gibt es etwas Lesestoff für diese Thematik?
man kann bei 0 anfangen mit Sockets oder man nimmt eine fertige LIB wie
curl

Man könnte auch einfach perl nehmen und hat das ganze in ein paar Zeilen 
code erledigt.

> Ist es sinnvoll, von Wetter.com oder ähnlichen Seiten sich Wetterdaten
> zu beziehen
wenn man die Daten braucht ist es bestimmt sinnvoll

> oder gibt es für solche Zwecke spezielle Seiten?
ja gibt es, viele Handy-Wetter-Apps nutzen sie auch nur. Aber sie sind 
meist nicht kostenlos.

von Robin F. (gehacktes)


Lesenswert?

Okay danke erstmal.

Ja die Programmiersprache ist für mich nicht so entscheidend. Zur not 
lese ich mich etwas in eine neue Programmiersprache ein, um speziell 
diese Sache zu realisieren. Bin halt mit C, C++, VBA, html und CSS 
vertraut, daher spreche ich hier direkt die an.

Noch einmal genau was ich vor habe. Ich möchte irgendwie aktuelle 
Wetterdaten beziehen (aktuelle und die für maximal den nächsten Tag). 
Die möchte ich auswerten und einen durchschnitt bilden. Anschließend 
möchte ich den gebildeten durchschnitt weiterverarbeiten (es soll 
natürlich alle paar Stunden überprüft werden, ob es neue Wetterdaten 
gibt um relativ genau zu sein). Wenn nötig, würde ich auch auf mehrere 
Webseiten zurück greifen wollen und die Wetterdaten vergleichen.


Ich guck mal, was sich aus der API von Wetter.com so machen lässt, 
vielleicht ist das ja sch die Lösung. Auf der Seite bekommt man ja eine 
Einleitung, wie man die API verwendet.
Des weiteren werde ich mich noch mehr in Google belesen mit der Hoffnung 
das passende zu finden.

Gruß & Danke

von kabeljau oder dorsch (Gast)


Lesenswert?

Falls Windows (wegen "VBA"): WinINet ist recht simpel.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385331%28v=vs.85%29.aspx

Robin F. schrieb:
> Ich guck mal, was sich aus der API von Wetter.com so machen lässt,
> vielleicht ist das ja sch die Lösung.

Das alleine hilft dir ja nicht, du musst trotzdem übers Internet auf den 
Server zugreifen. Ob es sich nun um eine "normale" Website oder um die 
openweather-API handelt, ist rein technisch erst einmal ziemlich egal 
(nur ist die Kommunikation im zweiten Fall wegen der Authentifizierung 
etwas komplexer).

von foobar (Gast)


Lesenswert?

Lerne metar lesen, die gibt es recht einfach

http://weather.noaa.gov/pub/data/observations/metar/stations/EDDH.TXT

von Andy P. (Gast)


Lesenswert?

Robin F. schrieb:
> Ich kenn mich auch etwas mit html und css aus. Vielleicht kann man ja
> einfacher damit die Seiten durchforsten und die für mich relevanten
> Daten aus sieben...

Das schreit förmlich nach Perl + LWP-Modul. Das ganze wird damit 
einfacher, als das Ergebnis einer SQL-Select-Anweisung via C++ zu holen.

von Daniel F. (df311)


Lesenswert?

das wetter.com-api ist ein einfacher http-get, ausgabeformat ist 
entweder xml oder json.

ich habs schon länger nicht mehr gemacht, aber in c einen socket zu 
öffnen dürfte nicht übermäßig schwierig sein. über den socket dann einen 
einfachen http get abzusetzen und die rückgabe einzulesen auch nicht 
wirklich. die größte herausforderung dürfte darin bestehen, json bzw. 
xml zu parsen bzw sich in eine jeweils passende lib einzulesen...

von Christian R. (0x2a)


Lesenswert?

Ganz klar, wenn es eine API gibt diese verwenden.

Wenn es von Webseite sein muss, dann habe ich hier mal ein Beispiel mit 
Python und beautifulsoup:

https://github.com/crapp/lubwdatacrawler

Aber Vorsicht, von Webseite geht nur noch selten. Meist ist da sehr viel 
Javascript im Spiel damit die Seite überhaupt angezeigt wird. 
Möglicherweise ist auch Nutzerinteraktion nötig. Dann ist eine API ein 
Segen. Allerdings wollen kommerzielle Anbieter gerne Kohle für die 
Nutzung der API. Kostenlose Daten gibt es meist nur mit niedriger 
Abfragefrequenz oder anderen Einschränkungen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

http://www.worldweatheronline.com/free-weather-feed.aspx

Ist recht einfach auswertbar. Bedarf zwar einer Registrierung per Email, 
ist aber auch zur kommerziellen Nutzung kostenfrei, und liefert auch 
Wetterdaten für Europa.

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.