Daten aus Webseite mit C/C++ ausläsen

OP #3670966
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
Gast #3670979
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.
#3670985
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.
Gast #3670986
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.
OP #3671005
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
Gast #3671763
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).
Gast #3671979
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.
#3672028
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...
#3685057
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren