kostenloser Webspace werbefrei: lima-city


Script welches über Veränderung auf einer Seite benachrichtigt

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    super-geil

    Kostenloser Webspace von super-geil

    super-geil hat kostenlosen Webspace.

    Hallo Leute,
    kennt jemand ein Script (o. auch Webservice) welches mich über Email/IM benachrichtigt wen an einer Seite sich etwas verändert hat?
    gibts sowas?
    danke schon mal!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Kommt darauf an wie du das meinst.
    Meinst du jetzt eine PHP-Seite, welche sich die Informationen aus der Datenbank nachlädt oder eine statische HTML-Seite?
  4. Autor dieses Themas

    super-geil

    Kostenloser Webspace von super-geil

    super-geil hat kostenlosen Webspace.

    ähmm...
    ich will nur bescheid wissen wenn sich was geändert hat..... und nicht was.... lässt sich das nich irgendwie machen?
    die seite ist http://www.fleurus.de/
  5. du kannst doch nen RSS-Feed machen, dann fällt dieser lästige Browser-Spam weg...
  6. naja..du könntest einfach den kompletten inhalt der seite in eine datenbank schreiben, und diese wiederum duplizieren.
    immer wenn die seite dann aufgerufen wird überprüfst du einfach die aktuelle tabelle mit der duplizierten. wenn diese nicht gleich sind hat sich folglich was geändert und du kannst die benachrichtigung abschicken.

    diese lösung ist zwar extrem bescheuert und warscheinlich ziemlich speicherintensiv, aber mehr konnte ich mit deinen angaben nicht anfangen.

    mfg
  7. Die Lösung ist auch insofern bescheuert, weil sie nicht auf das einging, was der Frager wollte. Wenn er das Per iemail haben will, dann heißt es, er will nciht extra die seite ansurfen und das nachprüfen... sonst würden die erstelluungsdaten in den Beiträgen völlig ausreichen.
  8. k**********k

    Um hier mal was konstruktives rein zu bringen. Ich hab mich mal hingesetzt und schnell was geschrieben. Das Script besteht aus 3 Dateien: einem Pythonscript das auf ein Update der Seite prüft, ein Phpscript welches die Email schickt und einer Datei welche einfach nur die letzte Version der Seite speichert.

    Das Pythonscript script.py:
    #!/usr/bin/env python
    watchurl="www.fleurus.de" # Die URL welche das Script ueberwachen soll. Format: www.example.com. kein http und kein /
    phpurl="ketchupfleck.lima-city.de" # Die URL auf der das mail.php script liegt.  Format: www.example.com. kein http und kein /
    
    import httplib, difflib, urllib
    
    # Get new version
    conn = httplib.HTTPConnection(watchurl)
    conn.request("GET", "/index.html")
    r1 = conn.getresponse()
    newdata = r1.read()
    conn.close()
    newdata=newdata.splitlines(1)
    
     # Read old version
    fobj = open("old",  "r")
    olddata=[]
    for line in fobj:
        olddata.append(line)
    fobj.close()
    
    #Make sure both versions end with \n
    olddata[-1]=olddata[-1].rstrip("\n")+"\n"
    newdata[-1]=newdata[-1].rstrip("\n")+"\n"
    
    if olddata != newdata:
        #find differences
        diff = difflib.ndiff(olddata, newdata)
        diff =''.join(diff)
        #Send mail via php
        params = urllib.urlencode({'msg': diff})
        headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
        conn = httplib.HTTPConnection(phpurl)
        conn.request("POST", "/mail.php", params, headers)
        response = conn.getresponse()
        data = response.read()
        conn.close()
        print data
        #update old file
        fobj = open("old",  "w")
        for line in newdata:
            fobj.write(line)
        fobj.close()
    else:
        print "Keine Unterschiede gefunden. Es wird keine Email verschickt."


    Das Phpscript mail.php:
    <?php
    $addr="ketchupfleck@example.com"; // Deine Email Adresse
    
    echo "Verbindung aufgebaut... ";
    $msg=$_POST["msg"];
    if(!empty($msg)){
      $headers  = 'MIME-Version: 1.0' . "\r\n";
      $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
      $headers .= 'From: noreply@example.com' . "\r\n";
      $msg="Die von dir überwachte Webseite http://www.fleurus.de  hat sich geändert.\n\nLog:\n".$msg;
      // Mail it
      mail($addr, "http://www.fleurus.de hat sich geändert", $msg, $headers)
      echo "Gesendet!";
      echo "\n---------------------------------------------------\n";
      echo"Nachricht: \n".$msg;
    }
    else{
     echo "Keine Nachricht!";
    }
    ?>


    Die Datei mit der lezten Version der Seite namens old:
    <html><head>
    
    <title>Fleurus Verlag</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <style type="text/css">
    <!--
    .text {
    	font-family: Arial, Helvetica, sans-serif;
    	font-size: 20px;
    	color: #FF9933;
    	font-weight: bold;
    }
    -->
    </style>
    </head>
    
    
    <body bgcolor="#990000" marginheight="0" marginwidth="0">
    <table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%">
      <tr>
        <td valign="bottom" width="50%"> 
          <div align="center"><img src="images/drachen_frei.jpg" height="452" width="247"></div></td>
        <td valign="top" width="50%">
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p align="left" class="text">Unsere Website ist zur Zeit in der Bearbeitung!<br>
          Wir bitten um Verst&auml;ndnis!</p>
        </td>
      </tr>
    </table>
    </body></html>


    Im Pythonscript muss du noch die 2 Variablen phpurl und watchurl anpassen, im Phpscript musst du die Variable $addr anpassen. Ich denke es sollte eigentlich ganz verständlich sein. Denk dran das die meisten Mails von lima nicht ankommen. Lad die PHP also am besten auf einen Paid-Hoster.

    lg Ketchup
  9. vampiresilence

    Kostenloser Webspace von vampiresilence

    vampiresilence hat kostenlosen Webspace.

    @sebulon
    Syber's Vorschlag muss man nicht yedes Mal aufrufen, sondern einfach mit einem Cronjob realisieren. Fertig.

    @ketchupfleck
    Die Mails von Lima sind nach meiner Erfahrung eigtl wesentlich zuverlässiger geworden. Habe zumindest seit den letzten 3 Monaten keine Einzige mehr verpasst.

    Liebe Grüße
    - VampireSilence
  10. Autor dieses Themas

    super-geil

    Kostenloser Webspace von super-geil

    super-geil hat kostenlosen Webspace.

    kann man die phyton auch zu ner exe machen?
    was soll ich mit old machen?
    wenn ich das script.py starte schließt es sich gelich wieder...

    Beitrag zuletzt geändert: 30.8.2009 20:09:58 von super-geil
  11. Anscheinend verwendest du Windows :wink:

    Hier kannst du Python runterladen:

    http://www.python.org/download/

    Ich würde ja gerne ein PHP-Script schreiben, aber ich habe gerade leider keine Zeit und keine Lust:-( Dass wäre einfacher...

    Beitrag zuletzt geändert: 30.8.2009 20:22:06 von deutscher
  12. k**********k


    kann man die phyton auch zu ner exe machen?

    Ja geht, aber ich wüsste nicht wofür man das braucht. Wenn du python drauf hast, dann müsstest du sie doch auch so ausführen können?


    was soll ich mit old machen?

    Die muss einfach in den selben Ordner wie die script.py. Aber ich habe gerade das script eh noch ein Stück verbessert, also wird die Datei jetzt angelegt wenn sie nicht existiert.

    wenn ich das script.py starte schließt es sich gelich wieder...

    Jopp hab nicht gewusst dass du Windows benutzt. Du musst jetzt eine Taste drücken um das Fenster zu schliessen. Man könnte es theoretisch auch noch so lösen, dass du das Fenster nur eine bestimmte Zeit siehst (z.B. 5 Sekunden) und es sich dann automatisch schliesst. Wie du willst.

    Neue Version:
    script.py:
    #!/usr/bin/env python
    watchurl="www.fleurus.de" # Die URL welche das Script ueberwachen soll. Format: www.example.com. kein http und kein /
    phpurl="ketchupfleck.lima-city.de" # Die URL auf der das mail.php script liegt.  Format: www.example.com. kein http und kein /
    
    import httplib, difflib, urllib
    
    # HttpConnection
    conn = httplib.HTTPConnection(watchurl)
    conn.request("GET", "/index.html")
    r1 = conn.getresponse()
    newdata = r1.read()
    conn.close()
    newdata=newdata.splitlines(1)
    
    # Read old version
    olddata=[]
    try:
        fobj = open("old",  "r")
        for line in fobj:
            olddata.append(line)
        fobj.close()
        oldfileexists=True
    except IOError:
        print "Datei nicht gefunden."
        olddata.append(" ") # Fill olddata with dummy
        oldfileexists=False
    
    #Make sure both versions end with \n
    olddata[-1]=olddata[-1].rstrip("\n")+"\n"
    newdata[-1]=newdata[-1].rstrip("\n")+"\n"
    
    if olddata != newdata:
        #find differences
        diff = difflib.ndiff(olddata, newdata)
        diff =''.join(diff)
        if oldfileexists:
            #Send mail via php
            params = urllib.urlencode({'msg': diff, 'page':watchurl})
            headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
            conn = httplib.HTTPConnection(phpurl)
            conn.request("POST", "/mail.php", params, headers)
            response = conn.getresponse()
            data = response.read()
            conn.close()
            print data
        else:
            print "Datei wird angelegt."
        #update old file
        fobj = open("old",  "w")
        for line in newdata:
            fobj.write(line)
        fobj.close()
    else:
        print "Keine Unterschiede gefunden. Es wird keine Email verschickt."
    
    i=raw_input("Druecke eine beliebiege Taste.")



    mail.php:
    <?php
    $addr="ketchupfleck@example.com"; // Deine Email Adresse
    
    echo "Verbindung aufgebaut... ";
    $msg=$_POST["msg"];
    $page=$_POST["page"];
    if(!empty($msg)){
      $headers  = 'MIME-Version: 1.0' . "\r\n";
      $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
      $headers .= 'From: noreply@example.com' . "\r\n";
      $msg="Die von dir überwachte Webseite ".$page."  hat sich geändert.\n\nLog:\n".$msg;
      // Mail it
      mail($addr, $page." hat sich geändert", $msg, $headers)
      echo "Gesendet!";
      echo "\n---------------------------------------------------\n";
      echo"Nachricht: \n".$msg;
    }
    else{
     echo "Keine Nachricht!";
    }
    ?>
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!