der_V: Interseiten Parsen

Guten Tag,

Also ich hab folgendes Problem:
Ich wollte mir eine Übersichtsseite baun, für meine Aktienwerte (Denn momentan hab ich ziemlich viele Tabs offen, mit verschiedenen Seiten, wo ich eigentlich nur bestimmte Informationen von brauche)
Demzufolge wollte ich mir eine persönliche Überssichtsseite basteln, indem ich zum Beispiel die Realtimewerte von einer "fremden" Internetseite (www.finanzen.net)anzeigen lasse. Ich weiß aber nicht genau, wie ich an diese Informationen genau ran komme!
Also muss ich einen Bereich angeben, den er dann raussucht, oder eine Beschreibung, oder kann ich da eine Variable auslesen und wie mach ich das genau??
Könnt ihr mir da vielleicht helfen??

Vielen Dank

  1. Guten Tag,
    Könnt ihr mir da vielleicht helfen??

    Eine Seite voll mit Iframes. Da lädts du dann die Seiten rein die dich interessieren. Und per Javascript ziehst du dir die Elemente heraus die du möchtest und kannst sie dann wiederum auf der selben oder einer anderen ausgeben.

    1. Lieber Gino,

      Eine Seite voll mit Iframes. Da lädts du dann die Seiten rein die dich interessieren. Und per Javascript ziehst du dir die Elemente heraus die du möchtest

      und wie war das doch gleich mit der same-origin-policy in JavaScript, die Dir den Zugriff auf den Seiteninhalt fremder Seiten (zu Recht!!!) verbietet? Das wäre ja noch schöner, wenn ich auf meiner online-Banking-Seite bin, und mir ein JavaScript einer fremden Seite meine Zugangsdaten klaut.

      Besser wäre der Hinweis auf ein server-seitiges Script gewesen, das in etwa denselben Mechanismus anbietet.

      Liebe Grüße,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Lieber Gino,

        Eine Seite voll mit Iframes. Da lädts du dann die Seiten rein die dich interessieren. Und per Javascript ziehst du dir die Elemente heraus die du möchtest

        Ja sehr unglücklich formuliert. Bin ein wenig im Stress und muss mir etwas mehr Zeit für meine Formulierungen nehmen, wenn ich nicht möchte das die Leute anfangen zu CrossSiteScripten ;)

        und wie war das doch gleich mit der same-origin-policy in JavaScript, die Dir den Zugriff auf den Seiteninhalt fremder Seiten (zu Recht!!!) verbietet? Das wäre ja noch schöner, wenn ich auf meiner online-Banking-Seite bin, und mir ein JavaScript einer fremden Seite meine Zugangsdaten klaut.

        Besser wäre der Hinweis auf ein server-seitiges Script gewesen, das in etwa denselben Mechanismus anbietet.

        Aber Javascript kann doch auch Serverseitig genutzt werden oder nicht? Zumindest in einem ASP Framework.

        1. Also mir persönlich ging es weniger darum, eine Seite online zu stellen, sondern mir ging es mehr darum für mich eine lokale Übersicht zu haben. Das heißt prinzipiell sollte das rechtlich egal sein.
          Denn ich dachte es wäre möglich, einfach die Seiten aufzurufen, nach den Informationen zu filtern, die ich benötige und diese Information, dann in meiner Übersicht auszugeben...
          Also das war jetzt so meine Grundvorstellung, ich weiß aber nich genau wie das so möglich ist!??

          1. Lieber der_V,

            Denn ich dachte es wäre möglich, einfach die Seiten aufzurufen, nach den Informationen zu filtern, die ich benötige und diese Information, dann in meiner Übersicht auszugeben...

            vielleicht kann man mit XMLHTTPRequests etwas machen, indem man die Seiten nicht in einem Iframe anzeigt, sondern die jeweilige Serverantwort innerhalb des Scriptes weiterverarbeitet, jedoch weiß ich nicht, ob die Seiten alle wohlgeformtes X(HT)ML ausspucken, und ob Du im anderen Falle trotzdem mit der Serverantwort weiterarbeiten könntest (z.B. mit responseText).

            Liebe Grüße,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
            1. Moin!

              vielleicht kann man mit XMLHTTPRequests etwas machen

              Nein, auch da gilt die same-origin-policy.

              - Sven Rautenberg

              --
              "Love your nation - respect the others."
          2. Hi der_V!

            Ich mach mal einen kleinen Baum (exit -1=> du kriegst die Info nicht, return 0 => info OK):

            (0)sind die URLs der benötigten Informationen konstant?
            Y => goto (1)
            N => ist dir bekannt, wie die URL zur Info gebildet wird?
                Y => goto (1)
                N => exit -1 (oder suche jedes mal von Hand...)

            (1)sind sog. Framebreaker unter den Informationsseiten
            Y => goto (2)
            N => genügt es dir, alle Seiten komplett zu sehen (Y) oder willst du einzelne Informationen herausparsen (N)?
                Y => erstelle dir eine offline http://de.selfhtml.org/html/frames/definieren.htm#frames@title=frame page, bei der jeder Frame auf eine benötigte location zeigt, return 0
                N => goto (2)

            (2)nun benötigen wir eine Sprache, die content laden und verarbeiten kann. In Frage kommt grundsätzlich jede Sprache, aber da du das Ergebnis im Browser betrachten willst, wird folgendes notwendig:
            a) setze einen Server auf (z.B. Apache, IIS)
            b) mit einer Sprachunterstützung deiner Wahl (perl, php, java, python, ruby)
            (Anmerkung: unter Windows würde ich XAMPP = Apache + Perl verwenden, unter Linux wurde ich die packages Perl und Apache installieren)
            c)In perl kann man mittels folgender Befehle dann was erreichen:

            use LWP::UserAgent;
            use HTTP::Request;

            my $url="http://www.example.com";

            my $ua=new LWP::UserAgent;
            my $request=new HTTP::Request 'GET', $url;
            my $response=$ua->request($request);
            if ($response->is_success)
            {
             my $content = $response->content();
                    ...[jetzt ist die Seite (html) in $content geladen und kann geparst* werden, wie man den entsprechenden output generiert findest du <http://de.selfhtml.org/perl/module/cgi.htm@title=im cgi modul>]...

            Anschließend rufst du dein eigenes CGI im localhost auf => return 0.

            (*) natürlich nur, wenn die Struktur der Informationsseite ein gleichbleibendes Muster ergibt, das ein parsing ermöglicht.

            Grüße,
            Richard

            1. Lieber Richard

              Vielen Dank für ihre äußerst ausführliche Hilfe. Ich werde das die Tage mal ausprobieren und schaun ob ich das dann auch entsprechend meiner Wünsche hinbekomme!

              Vielen Dank
              Gruß
              V

            2. Ich hab da noch ma ne Frage. Ich habs noch nicht ausprobiert, aber mir viel da noch ma was ein. Geht das überhaupt, wenn ich nicht absolut weiß, wie der Text, den suche eigentlich heißt? Also ich meine ich suche z.B. ein Zahlenwert (also den Kurs der Aktie) den ich ja nicht genau weiß. Ich weiß im Grunde ja nur wo er steht.
              Auf der Beispielseite(http://www.finanzen.net) steht der Wert den ich beispielsweise auslesen will hinter dem Text (DAX), um mal ein Beispiel zu nehmen, damit man vielleicht besser versteht was ich meine.
              Also so wie Sie mir das beschrieben haben, hab ich jetzt die Seite die ich parsen will in $content enthalten. So wenn ich jetzt z.B.
              ...
              $self->start($tag, $attr, $attrseq, $origtext)
              ...
              und
              ...
              $self->end($tag, $attr, $attrseq, $origtext)
              ...
              benutzen will um die Seite zu parsen, dann kann ich da doch nicht genau den Wert oder Bereich eingeben, der ausgelesen werden soll, oder hab ich das falsch verstanden?? Also ich komm zu der Vermutung, weil ich den "Text" den ich suche ja nicht genau weiß, also kein absoluter Wert ist...

              1. Hi der_V!

                Also so wie Sie mir das beschrieben haben (...)

                Fühle mich geehrt, aber "Du" wäre mir lieber.

                Das Verständnis von $content sollte allerdings sein:
                Die komplette Datei liegt (als html String) in $content vor (incl. Zeilenumbrüche...)

                Wenn nun also bekannt wäre (z.B. mit Firefox kann man über markieren und "Quelltext anzeigen" oder den DOM Inspektor sowas herausfinden), dass der gesuchte Zahlenwert immer auf der Seite hinter dem html Teilstring "<td>AktieXY bond value</td>" kommt, ließe sich ein regulärer Ausdruck generieren, der als Rückgabe beispielsweise den Inhalt dieser und der nachfolgenden <td></td> zurückgibt (die natürlich dann den Wert enthalten sollte...).
                Genau das hatte ich auch damit gemeint, dass die Seite soweit "konstant" sein muß, so dass solche Regeln für das Auffinden der relevanten Info generiert werden können.

                Ich hoffe, dass das Beispiel verständlich ist.

                Grüße,
                Richard

              2. Hallo,

                Wenn du einen String nach einem bestimmten Muster durchsuchen willst, dann kannst du <http://de.selfhtml.org/perl/sprache/regexpr.htm@title=Reguläre Ausdrücke> verwenden.

                Übrigens gibt es auch sog. Web Services, die Börsenwerte in Formaten liefern, die für die maschinelle Verarbeitung gedacht sind. Suche besser mal danach.

                Mathias

          3. Hallo

            Also mir persönlich ging es weniger darum, eine Seite online zu stellen, sondern mir ging es mehr darum für mich eine lokale Übersicht zu haben. Das heißt prinzipiell sollte das rechtlich egal sein.
            Denn ich dachte es wäre möglich, einfach die Seiten aufzurufen, nach den Informationen zu filtern, die ich benötige und diese Information, dann in meiner Übersicht auszugeben...

            Mal 'ne andere Idee:

            Wenn du online (z.B. in einem per .htaccess für unberechtigten Zugriff gesperrten Verzeichnis) eine Seite für all die Nachrichten hast, kannst du z.B. bei finanzen.net einen der RSS-Feeds abgreifen, und nach deinen gewünschten Werten mit einem serverseitigen Skript filtern. Die Wahrscheinlichkeit, dass andere Dienste heutzutage einen vergleichbaren Dienst anbieten ist recht hoch.

            Offline böte sich dafür natürlich ein RSS-Reader an, ob du die Feeds vernünftig filtern kannst, hängt allerdings vom benutzten Programm ab.

            finanzen.net bietet auch andere Möglichkeiten auf die Angebote zuzugreifen. Inwieweit man dies mit den anderen Seiten synchronisieren kann, schließlich wolltest du dich ja der vielen Tabs entledigen, wäre allerdings zu recherchieren.

            Tschö, Auge

            --
            Die deutschen Interessen werden am Liechtenstein verteidigt.
            Veranstaltungsdatenbank Vdb 0.2
        2. Hi,

          Eine Seite voll mit Iframes. Da lädts du dann die Seiten rein die dich interessieren. Und per Javascript ziehst du dir die Elemente heraus die du möchtest
          Aber Javascript kann doch auch Serverseitig genutzt werden oder nicht?

          Wozu sollten serverseiting aber iframes nötig sein?
          Ganz schlechter Versuch, Dich rauszureden ...

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          O o ostern ...
          Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    2. @@Gino:

      Eine Seite voll mit Iframes. Da lädts du dann die Seiten rein die dich interessieren.

      Das dürfte dann die Anwälte der Betreiber der anderen Seiten interessieren.

      Live long and prosper,
      Gunnar

      --
      Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
      1. @@Gino:

        Eine Seite voll mit Iframes. Da lädts du dann die Seiten rein die dich interessieren.

        Das dürfte dann die Anwälte der Betreiber der anderen Seiten interessieren.

        Solange es um den privaten Gebrauch geht und die Seite nicht öffentlich ist und man den Eindruck gewinnt, dass er fremden Kontent unter seinem Namen veröffentlicht ist das ok.

    3. Hi,

      Eine Seite voll mit Iframes. Da lädts du dann die Seiten rein die dich interessieren. Und per Javascript ziehst du dir die Elemente heraus die du möchtest und kannst sie dann wiederum auf der selben oder einer anderen ausgeben.

      Das wird aufgrund der Same Origin Policy nicht klappen.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.