C++ geeignet um Daten von Webseiten systematisch auszulesen?
-
Hallo,
ich habe "schon mal" Java und C/C++ programmiert, meistens jedoch waren es sehr beschränkte Anwendungen ohne Interface. z.B. ein Programm hat Daten bekommen, eine Matrix, dann wurde diese manipuliert und dann wurde das ganze ausgegeben.Mein Ziel:
ich möchte ein Programm erstellen, welches Daten von einer Webseite ausliest(erst mal: http://finance.yahoo.com/). Ich möchte dass nachdem ich das Programm ausgeführt habe am Ende eine txt Datei(bzw. ein anderes Format) haben mit den Daten(mehrere Aktien), Das Programm muss also mit der Webseite auch interagieren, Sachen auswählen oder eintragen.Auf der Webseite gibt es bei jeder Aktie, dann ein Link zum Download einer Exel Datei, das würde mir für den Anfang reichen. Also wenn ich z.b. Die Exel Dateien von 1000(evnt mehr) Aktien habe.Später möchte ich Daten von anderen Seiten abgreifen, oft sind diese jedoch in Scripts/Flash oder Java, eingebunden. Ist es möglich mit C++?
Meine Frage:
ist C++ dazu geeignet oder sollte ich mich nach etwas anderem umsehen? Ich würde es gerne unter Linux(Ubuntu) machen wenn es möglich ist.
Langfristig möchte ich dass das ganze auf dem Server abläuft und ich z.b. Morgen mir einfach die Daten im passendem Format runter laden kann, um diese dann weiter mit z.b. mit Matlab zu verarbeitenIch habe mich nicht genug mit Java oder C++ beschäftigt ob zu sagen, dass es möglich ist. Ich glaube schon dass fast alles möglich ist, aber die Frage ist ob man es mit einer anderen Sprache es vielleicht viel einfacher hinkriegt.
Vielleicht hat jemand schon soetwas gemacht. Oder er kann mir ein Buch/Script empfehlen, werde wohl oder über paar Basics wiederhohlen müssen. Oder dann doch komplett andere Sprache lernen
Vielen Dank
-
Prinzipiell klingt das was du beschreibst nach keiner Aufgabe die mit C++ unlösbar wäre. Wie einfach oder schwer das ganze damit ist steht auf einen anderen Blatt beschrieben.
Ich denke da wirst du also Frameworks brauchen die dir dabei helfen.
Als Faustregel könnte man sagen das an fast alle Daten an die du als Nutzer einer Website herankommst, du auch mit einer Programmiersprache herankommst. Problematischer sehe ich da schon die Sache mit Daten die aus Seiten kommen die per Scripts oder Flash kommen. Mit unter wird ja genau sowas eingesetzt damit du die Daten nicht wieder auslesen kannst. Man müsste also genauer wissen wie die Seiten aussehen bzw aufgebaut sind. Manche anbieter bieten ja auch richtige Webservices an auf denen man die Daten dann problemlos abgreifen kann.
Reines C++ kannst du problemlos auf Linux machen, da ist sogar standardmäßig ein recht passabler Compiler verfügbar.
Du hast aber hier im CLI Forum gepostet. DAs ist quasi eine anbindung von C++ ans .Net Framework. Da dies nun aus dem Hause MS kommt wirds hier mit der verwendung unter Linux schon schwerer. Mit Mono gibts eine Portierung für Linux aber ich kann nicht sagen wie gut oder schlecht die unter Linux ist.
Ansonsten würde ich für solche Aufgaben eher zu C# tendieren da es doch in den Basics leichter zu programmieren ist, und das mächtige Framework schon Funktionalitäten anbietet um mit Webseiten zu interagieren, zu Downloaden o.ä.
Bei C++ gibts sowas sicherlich auch, aber dort halt nicht in den Standard features. Da muss man dann mal herumsuchen was es dafür gibt.
-
Ich habe letztens begonnen, die sich laufend ändernde Spezifikation einer Datenbank von einer kommerziellen Site mit Login abzusaugen, weil ich gegen diese Spezifikation programmieren muss. Mein Programm zieht sich stündlich die Daten, macht eine Sicherung davon und programmiert selbst eine Schnittstelle, welche ich später verwende.
Dafür verwende ich ausschliesslich PowerShell, weil man damit sehr schnell im Internet arbeiten und elegant Files parsen kann mit Regular Expression. Und sobald man mehr Funktionalität braucht, hat man trotzdem das gesamte .NET Arsenal zur Verfügung. Z.B. habe ich gleich noch ein kleines GUI im Skript mit Windows Forms realisiert. Leider läuft PowerShell nur auf Windows Vista und höher vernünftig.
Unter Linux würde ich dir Perl empfehlen, damit wirst du ähnliche Möglichkeiten haben (ich weiss nicht, wie sich Perl die letzten paar Jahre entwickelt hat). Im Allgemeinen würde ich sagen, dass Sprachen wie Java oder C++ für eine Aufgabe wie deine Overkill sind. Skriptsprachen sind hier wohl eher empfehlenswert.
MfG