witchdream : Parsen ist das automatisierte Suchen und Herausfiltern der relevanten Informationen z.B. aus einer CSV-Datei oder einer HTML-Seite.
automatische Kursabfrage von Aktien mit Excel
-
-
*.*
-
Zitat
Original von witchdream
hmm, ich oute (offenbare) mich mal als new-speak-idiot (denglish-beginner). In diesem Sinne: Was muss denn ein noob wie ich als parsen understanden?Sorry, war Fachchinesisch: http://de.wikipedia.org/wiki/Parser
-
Als Tipp: Wer das ganze etwas professioneller und flexibler haben will, sollte sich mit Perl beschäftigen. Die Sprache kommt quasi mit eingebauten Parser in Form von regulären Ausdrücken daher. Man kann sich auch im Programm in Webpages einloggen, die Links auf der Page raussuchen, und durchnavigieren. Es gibt auch Module um direkt Excel Tabellen zu schreiben.
Damit kann man auch richtige HTML Seiten parsen:
Code- $agent->proxy( 'http' => 'http://abc.xyz.de:81/' ); # Stetzt Proxy
- $agent->cookie_jar( HTTP::Cookies->new() ); # Schaltet cookies ein
- # Folgende Routine loggt sich in Yahoo ein, liest ein Portfolio und loggt sich wieder aus:
- # Login into Yahoo:
- printf("\nLogin into Yahoo....");
- $agent->cookie_jar( HTTP::Cookies->new() );
- $agent->get("https://login.yahoo.com/config/login_verify2?");
- $agent->form_name('login_form');
- $agent->field( login => 'User' );
- $agent->field( passwd => 'passwort' );
- $agent->click();
- my $output_page = $agent->content();
- printf("logged in\n");
- # Seite lesen
- $agent->get('http://finance.yahoo.com/p?v&k=pf_1');
- $ln = $agent->content();
- # String "Hallo" im gelesenen Code suchen:
- if ( $ln =~ /'Hallo'/ ) {
- printf "Hallo gefunden\n";
- }
- #Ausloggen:
- $agent->follow_link( text => "Sign Out" );
Der ganzen Kladderadatsch ist open source und entsprechend frei verfügbar.
-
Zitat
Original von nixda
Als Tipp: Wer das ganze etwas professioneller und flexibler haben will, ...Weitere Möglichkeit:
Excel ist so nett und macht aus einer HTML-Seite eine Tabelle!
Dann such man sich einen markanten Begriff (weil ja nicht garantiert ist das diese Tabelle jedes mal genauso aufgebaut ist) und schlängelt sich ab da an wie durch eine Tabelle! -
Zitat
Original von nixda
Als Tipp: ... Perl ...Läuft das dann local auf dem Rechner oder auf einem Webserver?
-
dev : Kann man machen wie mal will. Perl wurde und wird auch verwendet um HTML-Code zu erzeugen. Dann ruft der Webserver ein Perlprogramm auf und reicht die Ausgabe des Programms einfach an den Aufrufer durch.
Wenn Du Perl lokal installierst, z.B. Active State für Windows, kannst du Perlprogramme aus der Dos-Box starten "Perl programm.pl".
Perl ist im Normalfall eine Interpretersprache, d.h. auf dem System, auf dem die Programme laufen, muss ein Perl installiert sein. Kann aber auch sein, das irgendwo Compiler existieren.
Es gibt zahlreiche Module ("Packages") mit irgendwelchen Funktionen zum dazuinstallieren, zB Parser für HTML, XML o.ä. Datenbankinterfaces, Excel-Output etc: www.cpan.org
Ich selber arbeite mit ActivesState Perl für Windoof und Eclipse als Entwicklungsumgebung. Für Eclipse gibt es ein Perl Modul, das man zusätzlich installieren muss. Links siehe oben. Die Programme laufen dann aber auch unter Linux. AcitveState hat ein Paketmanager "ppm", mit dem man die Module sher einfach auswählen und installieren kann.
Perl ist ein wenig eine Hacker Sprache, die jede Menge Shortcuts und Tricks erlaubt. Deshalb sehr flexibel aber manchmal auch ein wenig kompliziert.
-
Zitat
Original von nixda
...
Perl ist ein wenig eine Hacker Sprache,
...Hmm, dann ist Perl seit einiger Zeit in de verboten ;-).
Es ist einfach eine Sript-Sprache, mit der man diverse Sachen automatisieren kann!
-
hi nixda,
ich liebe perl ebenfalls Baue sicher seit '95 Parser damit. Perl hat sehr viele Befehle, die sich sehr gut zum Durchsuchen eines Textes und zum Rauspicken der Informationen eignen.
In letzter Zeit mache ich das aber verstärkt mit Excel oder Access und vba, da es meist auch auf irgendwelchen Firmenrechnern laufen soll. Da muß man sich dann eben mit langen Formeln mit den Befehlen 'instr', 'mid', 'left','instrrev' rumhauen...
Dong
-
Update, (falls das noch jemand interessiert):
Für Anwender mit Dezimalpunkt (! in den Ländereinstellungen des Betriebssystems festgelegt) bietet sich die folgende Vereinfachung bzw. das folgende Update an:
http://finance.yahoo.com/d/quo….F&f=sl1d1t1c1ohgv&e=.csv
also
- "finance statt "oldfinance",
- "de" weglassen
- und unbedingt "Symbol" und nicht WKN oder ISIN als Wertpapierkennung nehmen, hier "srm.F" für seabridge in Frankfurt (das hatten wir aber schon weiter oben, wer gut aufgepasst hat). Bei Zertifikaten aber nach wie vor die WKN nehmen, hier funktioniert das nicht mit dem Symbol, also z.B. 330670.SG für das SET -Zertifikat in StuggarUnd das vorher extrem langwierige Zerstückeln des Ergebnisstrings
vereinfacht sich zu
=+TEIL(TEIL(AB4;FINDEN(",";AB4)+1;10);1;FINDEN(",";TEIL(AB4;FINDEN(",";AB4)+1;10))-1)
mit AB4 als Adresse der Zelle, in der die Abfrage steht.
Alles klar? Weitere Infos siehe Eingangsposting.
Wer mir jetzt noch eine saubere(!) Abtrennung bzw. Umwandlung von Datum und Kurszeit liefert, hat was gut!
=TEIL(AB4;FINDEN("/";AB4)-2;10)
liefert nämlich
"7/6/2007"
, was nicht so schön istund
=TEIL(AB4;FINDEN(":";AB4)-2;5)
liefert
"6:17
, was gar nicht elegant aussieht und außerdem Amizeit zu sein scheint!Endlich wieder Geldzählen auf Knopfdruck. Ich bin reich.
-
Mach mal 10 Updates hintereinander, dann wirst du geblockt!
ISIN: http://de.finance.yahoo.com/d/…hgv&e=.csv&s=DE0007231326
-
-
Wieder mal eine Umstellung:
http://de.old.finance.yahoo.co…f=sl1d1t1c1ohgv&e=.csv&s=" + isin + ".DE," + isin + ".F"
-
Zitat
Original von Donglengcha
Ich fürchte, die Ticket-Schreiberei führt genau zum Gegenteil: Yahoo wird seine Formate häufiger verändern, um das direkte Abrufen zu erschweren. Deren Geschäftsmodell basiert schließlich auf Werbung. Und die wird nur wahrgenommen, solange sich der Benutzer seine Infos über die Webseite beschafft.Nicht umsonst ist der Abruf über Skripte in den AGB untersagt. Excel ist in diesem Sinne eigentlich nichts anderes als ein Skript.
Wurde das inzwischen geändert? Ich habe mal sämtliche Seiten im "Yahoo! Terms Center" (http://info.yahoo.com/legal/us/yahoo/) heruntergeladen und nach " script" durchsucht.In einigen wird das automatisierte Erstellen von "multiple API Keys" untersagt, worum es hier aber auch nicht geht.
Die "Advertiser Terms" ganz unten auf der Webseite untersagen in der Tat den Einsatz von jeglichen "automated means", also auch Skripten. Ich vermute aber, diese Bestimmungen betreffen nur die Werbekunden von Yahoo? Oder habe ich da etwas falsch verstanden/übersehen?