Guy Geschrieben 7. Juni 2002 Geschrieben 7. Juni 2002 Hallo Leute! Ich poste hier, da ich glaube das Problem läßt sich mit Java lösen. An Erbeere nochmal vielen Dank für deine bisherige Hilfe. Das Problem ist leider aber noch nicht gelöst, da der BufferdReader nur Zeilen einliest. Ich weiss dann aber nicht weiter. Nun zu meinem etwas größerem Problem. Ich schreib grad in meiner Diplomarbeit eine Anforderungsspezifikation für eine Client-Software die als Teil eines Web-Client Internetseiten in einem Dokumenten-Management-System ablegen soll. Ich beschäftige mich da schon geraume Zeit mit, bin aber bisher noch zu keinem anständigen Lösungsweg gekommen. Leider haben weder ich, noch mein Chef die Dimension des ganzen im vorhinein gekannt. Da jetzt sogar die Firma für die ich das mache Pleite gegangen ist hab ich nicht mal mehr Technischen Support und meine Hintergrundkenntnisse sind auch nicht grad überwältigend. Da ich für die Spezifikation ja nicht programmieren brauch reicht es mir, wenn mir jemand sagen kann, auf welchem Weg ich Webseiteninhalte in das DMS bekomme. Zur Erklärung: Wenn eine Internetseite gespeichert werden soll, soll der Anwender über ein Browser Plug-In ein weiteres Fenster mit der Startseite des Web-Client öffnen, über die sich der Anwender am DMS anmeldet. Diese Umsetzung ist soweit i.O. Jetzt stellt sich mir die Frage wie ich die Webseite geparst bekomme und die Teile der Seite in das System übertrage. Wie ich im System die Webseitenteile zu einem Dokument zusammensetze ist schon gelöst. Es gibt Tools, die Webseiten auf dem PC speichern, aber leider weiss ich nicht wie die arbeiten. Sollte das Problem allerdings daran liegen, das ein zweites Browserfenster zwischengeschaltet ist und es daher nicht gehen(Was schon fast meine Vermutung ist) wär das ja auch nen Ergebnis. Dann bräucht ich aber explizite Gründe womit ich das Ergebnis dann darstelle. Ich wär euch verdammt dankbar wenn mir jemand helfen könnte. Und ich hätte auch die Bitte die Erklärungen etwas ausführlicher zu halten, da mein Wissen gerade im Bereich der Webseiten arg beschränkt ist. Vielen lieben Dank Guy Zitieren
Mirko Geschrieben 7. Juni 2002 Geschrieben 7. Juni 2002 Ich antworte dir nur kurz - aber vielleicht hilft dir das ja auch schon weiter. Ich sehen das so, dass du mit dem BufferedReader ja eigentlich schon auf der richtigen Spur bist. Die verschiedenen Browserfenster sind ja absolut kein Problem, weil du ja einen InputStream auf die komplette http-Adresse machen kannst - völlig unabhängig von irgendwelchen Browserfenstern. Du sprichst von diesen Programmen, die eine komplette Webseite zum offline-lesen runterladen - wenn du das genauso haben willst, mußt du ja auch nicht nur die html-Seite in deinem dms ablegen, sondern auch alle darin eingebundenen Bilder. Dazu brauchst du ja dann auch die einzelnen Zeilen, die der BufferedReader dir aus dem InputStream liest, weil du diese Zeilen ja nach verlinkten Bildern durchsuchen mußt, um diese dann auch noch im DMS zu speichern. Vielleicht hat dir das ja den ein oder anderen Denkanstoss gegeben. Wenn du noch weitere Fragen hast, nur zu. Das ist wirklich ein interessantes Projekt. Gruß Mirko Zitieren
Guy Geschrieben 7. Juni 2002 Autor Geschrieben 7. Juni 2002 Erstmal Danke für deine schnelle Antwort! Mit dem Input-Stream fangen meine Probleme ja schon an, da ich dann ja die Daten vom Web-Server hole. Problem ist aber, dass in der Anforderungsdefinition festgelegt ist, dass die Daten vom Browser kommen sollen, damit nicht zwischen Aufruf und Speicherung der Webseite Änderungen an der Seite vorgenommen werden können und eine falsche oder geänderte Seite gespeichert wird. Wenn du mir eine schlagkräftige Begründung dafür lieferst warum das nur so geht ist das auch ne Lösung und ich kann als Alternative vorschlagen die Daten vom Server zu holen. Es ist auch richtig, dass ich die ganzen Bilder und den Kram brauche. Der bufferedReader liest aber nur die Zeilen und fürs durchsuchen müsste dann ein Parser entwickelt werden, oder seh ich das falsch. So das wars erstmal wieder Vielen Dank nochmal auch an die die vielleicht zum Thema auch noch was schreiben wollen! :-) Ciao Guido Zitieren
Tom.bEE Geschrieben 7. Juni 2002 Geschrieben 7. Juni 2002 Hi, Um die Webseite nach Tags auseinanderzunehmen wirst du mit Regulären-Ausdrücken, die es bei Perl, PHP und seit neustem auch bei Java gibt, gut klar kommen. Damit kannst du belibig eklige Muster erstellen, die du dann mit dem HTML-Text abgleichst und so links, Bilder-HREF's etc. herausfilterst. Für näheres einfach mal nach "Regulären Ausdrücken" suchen.... Nun zu dem Browser Problem: Also mir ist keine Möglichkeit bekannt über Java den Mozilla, Opera, oder einen anderen Browser mit z.B. OLE einzubinden. Da müsstest du schon was Windows eigenes nehmen. Borland C++ Builder, Delphi oder so was... (Ich nehme doch an, dass das Projekt für Windows geplant ist!!) Ansonsten muss der User wohl oder übel sich das Dokument über den Browser ansehen, es dann entweder dort speichern und die Dateien in das, Managementsystem einspielen, oder er kopiert die Adresse übergibt die dem DMS und dieses macht dann den Rest mit Regulären ausdrücken und ganz vielen kleinen und großen Streams Das wäre dann wohl auch eleganter, da der User nur die Adresse kopieren muss... Allerdings könnten sich dynamische Websites in der Zwischenzeit schon wieder geändert haben. Also kurz um, die einzige Möglichkeit die mir so einfällt, wäre OLE (wobei ich nicht weiss wie es geht, aber habe schon gesehen, dass man MSWord einbinden kann, dann geht das auch mit nem kleinen Browser) Ok, dann noch viel Spaß Zitieren
Mirko Geschrieben 7. Juni 2002 Geschrieben 7. Juni 2002 Ich hab da gerade noch eine ganz blöde Idee. Wobei ich nicht weiß, ob das wirklich funktioniert, aber ein Versuch ist es vielleicht wert. Es gibt doch in Javascript eine Funktion in der Art: history.stepBack() mit der man die zu letzt aufgerufene Seite bekommt (viele "Back Buttons" benutzen diese funktion"). Jetzt könnte man doch einfach, statt eines "Plug-Ins" einen Favorite im IE oder Navigator anlegen, der auf eine Java-Servlet-Seite verweist und über dieses Servlet meldet man sich dann an diesem DMS an und übergibt die über die Funktion erreichte Adresse an einen Java-Prozess, der das Parsen und archivieren erledigt. Der User müßte also nur wenn er auf einer Seite ist, die er Archivieren will diesen Favoriten auswählen und das wars. Zitieren
doublezero Geschrieben 8. Juni 2002 Geschrieben 8. Juni 2002 mir fallen da spontan 2 mglkt.en ein ... ad eins koennte man einen eigenen browser entwickeln, der auf der mozilla-engine aufsetzt, und hier die funtionalitaet(en) einbauen, die benoetigt werden. vorteile: produktbindung(marketing), flexibilitaet(erweiterungen, direktes readback vom dms, etc.) nachteil: evtl. aufwand-nutzen-verhaeltnis, verbreitung der software(soweit nicht sowieso branchen- oder firmenspezifisch) ... ad zwei speichern afaik alle browser die dateien temporaer ab, bevor sie sie anzeigen, es gilt, die temporaere kopie zu lokalisieren und fuer die eigenen zwecke zu missbrauchen. vorteil/nachteil: vice versa zu eins da du ja nicht programmieren musst (ich hab' von java auch keine ahnung), kannst du beide loesungen auf ihre machbarkeit abklopfen und eine vorschlagen ... gute literatur: =============== Microsoft Corporation (1999): Microsoft Internet Explorer 5. Die Technische Referenz, Unterschleißheim: Microsoft Press Germany (isbn: 3-86063-273-6) [amazon = 329 € = schweineteuer] Microsoft Corporation (1999): Microsoft Internet Informationsdienste. Die Technische Referenz, Unterschleißheim: Microsoft Press Germany (isbn: 3-86063-273-6) [gehoert dazu] (gleiche isbn = sammelband mit 6 buechern) Zitieren
Guy Geschrieben 10. Juni 2002 Autor Geschrieben 10. Juni 2002 Erstmal vielen Dank an alle die bisher geantwortet haben. Ich denke ich hab jetzt nen Lösungsansatz, den ich nun noch in nem neuen Beitrag abchecken lassen will. Da seid ihr natürlich alle herzlich eingeladen :-) Vielen Dank Ciao Guido Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.