Tausch: LWP

Hallo,

nach langer Forums-Suche habe ich immer wieder folgende Lösung gefunden, um mit Perl eine Internet-Seite von einem anderen Server zu laden:

use LWP::Simple; $total = get("http://www.irgendwas.de/index.shtml"); print "Content-type: text/html\n\n"; $total =~ s/</</g; print "$total";

Allerdings scheint bei dieser Lösung die "Formatierung" verloren zu gehen (dh. die Zeilenumbrüche). Ist es mit einem Perl-Modul möglich, den Quellcode 1:1 zu übernehmen?

Keine Angst, es ist nichts "illegales". Ich möchte nur mit Perl über das Internet den Quellcode nachbearbeiten (ähnlich wie mit Tidy).

Verzeiht meine ständigen Fragen zu Perl-Modulen; ich werde mich bei Gelegenheit intensiver mit Modulen beschäftigen und in das Thema einarbeiten, aber erst muß ich natürlich erst einmal wissen, was prinzipiell alles damit möglich ist.

Schon einmal vielen Dank für eure Antworten!

  1. Hi!

    use LWP::Simple; $total = get("http://www.irgendwas.de/index.shtml"); print "Content-type: text/html\n\n"; $total =~ s/</</g;

    Hier ist ein kleiner Fehler: Die original Tags sollen hier eigentlich "entwertet" werden. Dazu werden die einleitenden < durch < ersetzt: $total =~ s/</</g;

    Allerdings scheint bei dieser Lösung die "Formatierung" verloren zu gehen (dh. die Zeilenumbrüche). Ist es mit einem Perl-Modul möglich, den Quellcode 1:1 zu übernehmen?

    Wenn Du den kompletten Text in Originalform sehen möchtest (und nur diesen) kannst Du einfach den Content-type auf text/plain setzten (statt text/html).

    Gruß,    Jörk

    1. Wenn Du den kompletten Text in Originalform sehen möchtest (und nur diesen) kannst Du einfach den Content-type auf text/plain setzten (statt text/html).

      Hallo Jörk,

      die Entwertung der Tags funktioniert, aber > wird hier im Forum nicht dargestellt ;-)

      Den Header habe ich auf text/plain gesetzt, das Problem bleibt aber bestehen. Der gesamte Quellcode wird in einer einzigen Zeile dargestellt.

      Tausch.

      1. Hi Tasch,

        Hallo Jörk,

        die Entwertung der Tags funktioniert, aber > wird hier im Forum nicht dargestellt ;-)

        Vor lauter Telefoniererei habe ich gar nicht gemerkt, daß ihr hier schon weiter textet :(

        Den Header habe ich auf text/plain gesetzt, das Problem bleibt aber bestehen. Der gesamte Quellcode wird in einer einzigen Zeile dargestellt.

        Dann wird der Code wohl auch so vom Server geliefert ... Schau Dir die Ausgabe doch einfach mal direkt vom Deinem Browser aus an (also ohne zwischen geschaltetes Script). Zu der Ausgabe kannst Du Dir dann ja auch den Quelltext anschauen (Ctrl-U bei Netscape). Wenn der dann auch nur in einer Zeile ankommt ...

        Gruß,    Jörk

  2. Hi,

    nach langer Forums-Suche habe ich immer wieder folgende Lösung gefunden, um mit Perl eine Internet-Seite von einem anderen Server zu laden:

    [...]

    Allerdings scheint bei dieser Lösung die "Formatierung" verloren zu gehen (dh. die Zeilenumbrüche).

    definiere das, bitte. Stellst Du nur durch obigen Code fest, daß die Formatierung verlorengeht? Hast Du das auch im Quelltext der Ausgabe geprüft?

    Ist es mit einem Perl-Modul möglich, den Quellcode 1:1 zu übernehmen?

    Er wird definitiv 1:1 übernommen, weil er nämlich nichts anderes tut, als das Ergebnis des anderen Servers anzunehmen.

    #!/usr/bin/perl -w use strict; use LWP::Simple; my $total = get("http://www.irgendwas.de/index.shtml"); print "Content-type: text/plain\n\n"; print $total;

    Cheatah

  3. Hi!

    use LWP::Simple; $total = get("http://www.irgendwas.de/index.shtml"); print "Content-type: text/html\n\n"; $total =~ s/</</g;

    Hier ist ein kleiner Fehler: Die original Tags sollen hier eigentlich "entwertet" werden. Dazu werden die einleitenden < durch &#38;lt; ersetzt: $total =~ s/</&#38;lt;/g;

    Allerdings scheint bei dieser Lösung die "Formatierung" verloren zu gehen (dh. die Zeilenumbrüche). Ist es mit einem Perl-Modul möglich, den Quellcode 1:1 zu übernehmen?

    Wenn Du den kompletten Text in Originalform sehen möchtest (und nur diesen) kannst Du einfach den Content-type auf text/plain setzten (statt text/html).

    Gruß,    Jörk

    (sorry fürs 2te Posting - bin ich doch glatt in den gleichen Fehler gerannt :(  )

  4. --- Unglaublich sowas, beim ersten mal war's den doch richtig!!! Denn hatte ich meine email aber noch nicht eingetragen, so daß ich den Text noch einmal vorgelegt bekam, wodurch er mit dann kaputt gegangen ist. Das habe ich leider nicht gemerkt :((( Den Fehler auszumerzen hat denn dummerweise nicht geklappt. <<shame on me>>

    Hi!

    use LWP::Simple; $total = get("http://www.irgendwas.de/index.shtml"); print "Content-type: text/html\n\n"; $total =~ s/</</g;

    Hier ist ein kleiner Fehler: Die original Tags sollen hier eigentlich "entwertet" werden. Dazu werden die einleitenden < durch &lt; ersetzt: $total =~ s/</&lt;/g;

    Allerdings scheint bei dieser Lösung die "Formatierung" verloren zu gehen (dh. die Zeilenumbrüche). Ist es mit einem Perl-Modul möglich, den Quellcode 1:1 zu übernehmen?

    Wenn Du den kompletten Text in Originalform sehen möchtest (und nur diesen) kannst Du einfach den Content-type auf text/plain setzten (statt text/html).

    Gruß,    Jörk

  5. Danke an alle,

    es war eigentlich ein recht trivialer Fehler ;-) Es lag in der Tat am falschen Header. Mit dem Header text\html werden natürlich alle mehrfachen Leerzeichen ignoriert. Also habe ich $total =~ s/\s/ /g; eingefügt. Dadurch wurden natürlich auch alle Zeilenumbrüche entfernt, also auch nachdem ich den Header geändert habe.

    Schande über mein Haupt...