HTML-Datei mit Perl abspeichern und durchsuchen

  • Hi!
    Wie ist es möglich, mit Perl und CGI eine bestehende, täglich aktualisierte HTML-Seite abzurufen und zu durchsuchen? Diese Internetseite wird leider nicht von mir erstellt, sonst wäre es ja trivial.


    Also, es würde z.B. gehen, wenn ich selber die Internetseite mit einem Browser lade und auf meinen Webspace packe. Dann könnte das Skript laufen. Aber gerade das soll automatisch geschehen. Gibt es unter Perl oder ähnlichen Skriptsprachen eine solche Möglichkeit?
    Das Ziel ist, den Quelltext einer Internetseite nach Stichwörtern zu durchsuchen und den täglich wechselnden Inhalt mit Perl aufzubereiten und als WAP-Seite zu veröffentlichen.


    Nebenbei bemerkt: es geht um den Speiseplan der Bremer Unimensa. :)

    Das Nokia 3120 classic funktioniert nur noch in der Theorie – es geht nicht mehr an. Mal sehen, was nun kommt …

  • Moin,


    das ist einfach in Perl:

    PHP
    use LWP::Simple;
    $content = get ("http://www.telefon-treff.de/");


    Jetzt hast du den kompletten Inhalt der Seite in der Variable $content und kannst sie zb über RegExp parsen und auswerten.


    Gruß The-spY

    I am the lizard king - I can do anything!

  • Verzeih die dumme Frage, aber was ist RegExp? Tut mir leid, aber ich habe mir Perl durch ein Tutorial angeeignet, welches nur auf die "normalen" Sachen wie Textbearbeitung und Dateihandling eingeht, aber leider nicht auf Internet/CGI.


    Naja, mal ausprobieren. Wie durchsuche ich denn $content zeilenweise?


    Edit: LWP gab's bei meinem Perl (5.005_03) nicht, hab das Modul aber irgendwo gefunden. Leider verlangt das neue Model URI, und watt weiß ich wie lange das so weitergehen soll.
    Was soll der Kram? Wieso kann man nicht irgendwo ALLES runterladen?

    Das Nokia 3120 classic funktioniert nur noch in der Theorie – es geht nicht mehr an. Mal sehen, was nun kommt …

  • Hi Rainer,


    tja, Module installieren kann blöd sein. Erstmal wärs interessant, welches System du hast. Falls du auf Windows entwickelst kann ich dir die Perl Distri von Activestate.com empfehlen. Da ist alles auf einen Schlag dabei was du brauchst.


    Unter Linux sollte es das aber auch geben, schau am besten mal bei Perl.org vorbei. Ich mein auch die 03er Version ist nicht wirklich aktuell.


    Falls du es auf einem Webserver laufen hast, ohne Root Zugriff hau am besten mal deinen Provider an, damit sie dir das installieren. Bei mir hat er es damals auch ein Modul ohne Murren nachinstalliert.


    Mit RegExp meinte ich reguläre Ausdrücke. Das Thema ist aber zu kompliziert, um es hier in 2 Sätzen zu erklären. Einge gute Anlaufstelle ist mal wieder Selfhtml unter http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm . Zum weiteren Vorgehen: $content splitten am Zeilenumbruch mit

    Code
    @LINES = split (/\n/, $content);

    und danach eine Schleife drauf zum durchsuchen. Hier wären halt die RegExps nicht schlecht. Beispielsweise würde man einen Link etwa so finden:

    Code
    for ($i=0;$i<@LINES;$i++) {
    if ($LINES[$i] =~ /<A HREF="(.*?)">(.*?)<\/a>/i) {
    $verweis = $1;
    $verweisname = $2;
    }
    }

    Es würde sich aber hier ein Array anbieten, um die Treffer zu speichern.


    Hth The-spY

    I am the lizard king - I can do anything!

  • Danke für die Tipps! Mal sehen, ob bei der ActiveState Distribution alle Module bei sind.
    Ja, ich programmiere unter Windows. Zwar soll das Skript später auf dem Server laufen, aber zuhause wollte ich es erstmal austesten.


    RegExp, klar. :gpaul: Den Rest kann ich soweit alleine, hab auch schon die entsprechenden Stellen per Schleife und RegExp durchsucht. Mal sehen, ob das nun auch mit der Internetseite klappt.


    Edit:
    Okay, das Skript läuft hervorragend. :) Leider nur bei mir zuhause.



    Okay, hier nochmal die Bitte um Rettung!


    Gibt es einen Free-Webhoster, der volle Perl-Unterstützung bietet, also auch die ganzen WWW-Module? Bei tripod.com krieg ich nur eine Fehlermeldung. Es kommt noch soweit, dass ich Perl komplett per FTP dort hochlade...

    Das Nokia 3120 classic funktioniert nur noch in der Theorie – es geht nicht mehr an. Mal sehen, was nun kommt …

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!