Papellucho: Div Container von verschiedenen Webseiten laden

Hallo zusammen,

da ich vor wenigen Tagen ein Problem hier gelöst bekommen hab,
dachte ich frag hier direkt einmal bei meinem nächsten. :)

Aaalso:
Ich hab vor eine Art Interface zu bauen, welcher Daten von verschiedenen
Websites zusammenfasst, und auch hübsch darstellen kann.
Der Teil auf den Ich zugreifen will ist ein DIV Container mit einer Id, und beinhaltet noch weitere DIV's.
Mein Problem dabei ist aber folgendes:

Wenn ich eine Seite per iFrame einbinde und versuche mit
JQuery darauf zuzugreifen, erhalte ich einen Fehler wegen SOP..

Als ich die Website per PHP geladen habe, wurde der für mich interessante
Teil nicht geladen, weil der Inhalt Dynamisch generiert wird.

Und mit normalen Javascript habe ich es nicht geschafft, auch nur auf die
Seite zuzugreifen.

Da die Seite für mich ist und ich damit Lernen will,
sollte es keine Probleme wegen dem Datenschutz geben.

  1. Hallo,

    Wenn du nicht serverseitig darauf zugreifen kannst, weil der Inhalt clientseitig generiert wird, und auch nicht clientseitig darauf zugreifen kannst, weil es die Same-Origin-Policy gibt – dann gibt es keine einfache Lösung.

    Letztlich werden alle Daten vom Server geladen, selbst wenn sie erst mit JavaScript zum angezeigten HTML zusammengebaut werden. Du kannst also serverseitig die Daten abgreifen. Fragt sich nur, wie aufwändig das ist. Dazu müssten wir die fragliche Seite sehen und untersuchen, woher die Rohdaten kommen und ob du sie per PHP abgreifen und umwandeln kannst.

    Es ist auch möglich, serverseitig einen Browser zu starten, eine Seite rendern zu lassen und Daten per JavaScript zu extrahieren, z.B. mit http://phantomjs.org/. Das ist aber sehr aufwändig und langsam und erfordert einen leistungsfähigen Server am besten mit Shell- und Root-Zugriff, um die nötigen Pakete zu installieren.

    Clientseitig gibt es nur eine Möglichkeit, die Same-Origin-Policy zu umgehen: Der fremde Server erlaubt per CORS, dass du per XMLHttpRequest Daten laden darfst. Du kannst natürlich fragen, ob der Betreiber entsprechende Header setzt, aber das tut er wahrscheinlich nicht.

    Falls du nur lernen willst, würde ich dir vorschlagen, dir eine andere Aufgabe zu suchen. RSS- und Atom-Feeds kannst du z.B. sehr einfach serverseitig aggregieren. Dafür ist Syndication-Formate ausdrücklich gedacht.

    Mathias

    1. Hallo,

      Wenn du nicht serverseitig darauf zugreifen kannst, weil der Inhalt clientseitig generiert wird, und auch nicht clientseitig darauf zugreifen kannst, weil es die Same-Origin-Policy gibt – dann gibt es keine einfache Lösung.

      Letztlich werden alle Daten vom Server geladen, selbst wenn sie erst mit JavaScript zum angezeigten HTML zusammengebaut werden. Du kannst also serverseitig die Daten abgreifen. Fragt sich nur, wie aufwändig das ist. Dazu müssten wir die fragliche Seite sehen und untersuchen, woher die Rohdaten kommen und ob du sie per PHP abgreifen und umwandeln kannst.

      Es ist auch möglich, serverseitig einen Browser zu starten, eine Seite rendern zu lassen und Daten per JavaScript zu extrahieren, z.B. mit http://phantomjs.org/. Das ist aber sehr aufwändig und langsam und erfordert einen leistungsfähigen Server am besten mit Shell- und Root-Zugriff, um die nötigen Pakete zu installieren.

      Clientseitig gibt es nur eine Möglichkeit, die Same-Origin-Policy zu umgehen: Der fremde Server erlaubt per CORS, dass du per XMLHttpRequest Daten laden darfst. Du kannst natürlich fragen, ob der Betreiber entsprechende Header setzt, aber das tut er wahrscheinlich nicht.

      Falls du nur lernen willst, würde ich dir vorschlagen, dir eine andere Aufgabe zu suchen. RSS- und Atom-Feeds kannst du z.B. sehr einfach serverseitig aggregieren. Dafür ist Syndication-Formate ausdrücklich gedacht.

      Mathias

      Hallo Mathias,

      Erstmal Danke, für deine Ausführliche Beschreibung und Möglichkeiten. :)
      Wenn es so schwer wird, such ich mir eine Andere Aufgabe..

      Hatte grade auch überlegt, ob man nicht die Gewünschte Seite, per iFrame laden kann,
      und danach über Javascript und/oder JQuery alle unerwünschten Inhalte ausblenden könnte..

      Ich weiß nicht, wie hoch die Schwierigkeit dabei wäre..

      Gruß

      1. Hallo,

        Hatte grade auch überlegt, ob man nicht die Gewünschte Seite, per iFrame laden kann,
        und danach über Javascript und/oder JQuery alle unerwünschten Inhalte ausblenden könnte..

        Das ist wegen der Same-Origin-Policy ebenfalls nicht möglich.

        Mathias

  2. Hallo!

    Mal ganz abgesehen von den technischen Problemen ...

    Ich hab vor eine Art Interface zu bauen, welcher Daten von verschiedenen
    Websites zusammenfasst, ...

    Da die Seite für mich ist und ich damit Lernen will,
    sollte es keine Probleme wegen dem Datenschutz geben.

    Der Datenschutz hat damit erstmal nichts zu tun. Aber wenn es sich bei den "verschiedenen
    Websites" um fremde Seiten handelt, dann betreibst du "content stealing", was zumindest sehr "unfein" ist.

    Gruß Gunther

    1. Hallo!

      Mal ganz abgesehen von den technischen Problemen ...

      Ich hab vor eine Art Interface zu bauen, welcher Daten von verschiedenen
      Websites zusammenfasst, ...

      Da die Seite für mich ist und ich damit Lernen will,
      sollte es keine Probleme wegen dem Datenschutz geben.

      Der Datenschutz hat damit erstmal nichts zu tun. Aber wenn es sich bei den "verschiedenen
      Websites" um fremde Seiten handelt, dann betreibst du "content stealing", was zumindest sehr "unfein" ist.

      Gruß Gunther

      Hallo Gunther,
      ja, da hast du recht.
      Ich nahm dabei aber an, dass es nicht so schlimm ist da ich, wenn ich es kann, die Dateien in Vergessenheit oder Gelöscht werden, damit ich mich dem nächsten Projekt zuwenden kann. Ich habe nicht vor die Daten auszulesen, zu verarbeiten oder sonstwie zu nutzen.
      Ich wollte den "LiveTicker" nur für mich haben, um meine Kenntnisse in JS, JQ und HTML erweitern ;)

      Aber das Projekt hat sich schon erledigt, bevor es überhaupt begonnen hat, da es mir im Moment zu kompliziert wurde. :(

    2. Hi there,

      Da die Seite für mich ist und ich damit Lernen will,
      sollte es keine Probleme wegen dem Datenschutz geben.

      Der Datenschutz hat damit erstmal nichts zu tun. Aber wenn es sich bei den "verschiedenen
      Websites" um fremde Seiten handelt, dann betreibst du "content stealing", was zumindest sehr "unfein" ist.

      Wenn er eh schon schreibt, daß er damit nur lernen will, dann hat das mit "content stealing" genau gar nichts zu tun. "Content stealing" bezieht sich nur auf das Veröffentlichen fremder Seiten.
      Oder bezeichnest Du das Verwenden der "Seite speichern unter"-Funktion im Browser auch als "unfein"?

      1. Hi there,

        Da die Seite für mich ist und ich damit Lernen will,
        sollte es keine Probleme wegen dem Datenschutz geben.

        Der Datenschutz hat damit erstmal nichts zu tun. Aber wenn es sich bei den "verschiedenen
        Websites" um fremde Seiten handelt, dann betreibst du "content stealing", was zumindest sehr "unfein" ist.

        Wenn er eh schon schreibt, daß er damit nur lernen will, dann hat das mit "content stealing" genau gar nichts zu tun.

        Ja, ist klar ...! ;-)
        Er wäre auch der Erste hier, der das schreibt und hinterher im Erfolgsfall für "andere Zwecke" einsetzt ...!

        "Content stealing" bezieht sich nur auf das Veröffentlichen fremder Seiten.

        ... fremder Seiteninhalte!

        Und wozu will man das Lernen und einen solchen Aufwand betreiben? Um es hinterher auf einer Webseite einzusetzen, auf die man einzig und alleine Zugriff hat!?

        Oder bezeichnest Du das Verwenden der "Seite speichern unter"-Funktion im Browser auch als "unfein"?

        Natürlich nicht. Und ich will und wollte dem OP auch nichts unterstellen.
        Mir ging es mehr darum, dass zumindest auch mal auf die "Problematik" bezüglich des Content-Klaus in diesem Zusammenhang hingewiesen wird (und sei es fürs Archiv).

        Ganz abgesehen von der Thematik Urheberrechtsverletzung bei dem zu eigen machen fremder Inhalte ...!

        Gruß Gunther

  3. Ich hab vor eine Art Interface zu bauen, welcher Daten von verschiedenen
    Websites zusammenfasst, und auch hübsch darstellen kann.

    Das funktioniert damit, sehr gut

    http://forum.de.selfhtml.org/?t=217393&m=1493346