Michael Schröpl: Inhalte anderer Webseiten auslesen und anpassen

Beitrag lesen

Hi Dennis

Der Hauptsender stellt auf seiner Internetseite

liegen Eure Domains nicht auf einem gemeinsamen Server?
(Es wäre schön, die ggf. störungsanfällige, langsame und traffic kostende zusätzliche Kommunikationsverbindung bei jedem Zugriff - die Daten sollen ja zeitnah sein? - vermeiden und durch einen Dateizugriff ersetzen zu können.)

eine HTML-Datei mit aktuellen Verkehrsinformationen (also Staus etc.) zur Verfügung, allerdings in einem Layout, das absolut nicht zu unserem passt.

Das ist ein schöner Anwendungsfall für das Prinzip, Content und Visualisierung streng voneinander zu trennen. Denn Du willst ja nicht mühsam das ganze HTML-Zeug entfernen bzw. automatisch umschreiben - Du willst an die Rohdaten ran!
Frage Deinen Hauptsender, ob er Dir eine layout-befreite (CSV-artige) alternative Schnittstelle (z. B. ein URL) zu diesen Daten bereit stellt; dafür sollte er selbst sinnvollerweise seine HTML-Präsentation dynamisch zu den darstellungsneutral gespeicherten Rohdaten hinzu generieren, also nicht eine statische HTML-datei direkt editieren etc. Falls beispielsweise ein CMS genutzt wird, müßte Dir der Hauptsender einfach eine alternative, formatfreie Visualisierung anbieten - das geht dann möglicherweise mit sehr wenig Aufwand (aber eben auf seiner Maschine, nicht auf Deiner).

Bisher haben wir diese Seite über Frames eingebunden

Über Domaingrenzen hinweg? Nicht schön ...

möchten sie aber nun komplett unserem Layout anpassen.

Klar.

Simpel ist die Programmieraufgabe für mich nicht; sonst hätte ich die Frage nicht gestellt.

Die Aufgabe wäre auch für mich nicht "simpel", wenn Du so schlechte Startbedingungen hast.

Die Rohdaten abzusaugen (mit HTTP oder FTP, beides z. B. als Module für Perl verfügbar; denkt daran, ein Authentifizierungsschema vorzusehen, damit nicht beliebig viele Trittbrettfahrer sich der Daten "bedienen" ...) ist nicht wirklich das Problem.
Eher schon das Entfernen der Verpackung - denn wenn Dein Hauptsender plötzlich Spaß daran findet, _sein_ Layout mal eben unangekündigt zu ändern, dann fällt Dein Programm heftig auf die Nase, und das vor den Augen aller Besucher. :-(

Kontakte Deinen Hauptsender und mache ihm klar, daß Du eine neutrale Darstellung dieser Daten brauchst und daß diese für Dich eine verbindliche (!) Schnittstelle darstellen muß, die nur nach rechtzeitiger (!) Ankündigung geändert werden darf.
Macht am besten einen richtigen Nutzungsvertrag darüber. Wie lange wirst Du jeweils brauchen, um Dein Programm anzupassen, wenn der Hauptsender sein Datenformat ändert? Davon hängt beispielsweise die Vorwarnfrist ab ...

Was das konkrete Format angeht: Die Aufgabe sieht so aus, als wäre eine einfache XML-DTD ein wunderbarer Lösungansatz.
Wobei die DTD so primitiv sein sollte, daß sie gerade mal eine Handvoll Felder in fester Reihenfolge enthalten wird (was braucht Ihr denn? Datum und Uhrzeit, Text, Ortsangabe, vielleicht noch 2-3 weitere Felder), so daß Du diese in Perl mühelos parsen kannst und keinen komplexen XML-Parser brauchst. Das Format braucht nicht mehr zu können als CSV - aber XML zu verwenden ist hier eine Entscheidung zugunsten künftiger Anwendungsfälle.
Mache dem Hauptsender klar, daß Du ggf. nicht der einzige potentielle "Konsument" dieser Daten bist und daß es sich lohnen sollte, ein offizielles Transfer-Format für diese Daten zu spezifizieren.

Deine Aufgabenstellung ist spannend - mehr davon!

Viele Grüße
      Michael

--
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.