miguelmesa
Goto Top

Prüfe, wenn Änderung auf website xy, dann informiere mich per Email

Hallo,

ist so etwas prinzipiell möglich:

Ich schreibe mir eine kleine Html-Seite, die sich z.B. alle 5 minuten aktuallisiert und stelle diese online.

Dann füge ich einen php-Abschitt ein, der auf eine externe website geht, prüft, ob dort eine aktuallisierung passiert ist und informiert mich dann per Email.

Bsp.
Gehe zur Website: www.bild.de
und schreibe Email an mich:
"Website www.bild.de" wurde am 01.01.2000 um 20:00Uhr aktuallisiert"


Also was ich realisieren kann, ist:
- html-site, die sich nach bestimmten Intervall aktuallisiert (dadurch wird der php-code immer wieder wiederholt)
-automatische Email Generierung an meine Emailadresse.

Was ich nicht kann: Ist das möglich?:
php-code, der erkennt, dass externe Website aktualliesiert wurde.

Grüße und Danke

Content-ID: 247587

Url: https://administrator.de/contentid/247587

Ausgedruckt am: 19.11.2024 um 07:11 Uhr

bytecounter
bytecounter 27.08.2014 um 18:17:42 Uhr
Goto Top
Hallo,

klar wäre sowas möglich. Allerdings wäre das bei den vielen interaktiven / dynamischen Inhalten recht aufwändig, das Script auf die relevanten Bereiche zu beschränken.
Des Weiteren gehe ich davon aus, dass du das für Dich (privat und nicht öffentlich!) nutzen möchtest. Stichwort Urheberrecht.


vg
Bytecounter
kaiand1
kaiand1 27.08.2014 um 19:30:23 Uhr
Goto Top
Hi
Nun wenn du auf ner anderen Seite den Inhalt Abfragst..
Frag den Webmaster dort ( hast sicherlich die erlaubnis zum Traffic Verursachen xD ) ob er nicht an einer bestimmten Stelle ein Änderungsdatum einfügt.
Oder ob er ein RSS API ect für die Änderung Anbietet die du Abfragen/nutzten kannst.
Es gibt viele Wege nur sind die Seiten Heute ja alles mehr Dynamisch aufgebaut und nachfragen erleichtert dir das Coden ;)
MiguelMesa
MiguelMesa 27.08.2014 um 20:54:47 Uhr
Goto Top
Hi,
ich habe mir, während ihr geantwortet habt, weitere Gedanken gemacht:

lasst uns erst mal einfach denken und interaktive / dynamische Texte weglassen.

Beispiel: www.nachrichten_xyz.de ist statisch aufgebaut.

Mein php code stelle ich mir dann "konkret" so vor:

Befehle
<gehe auf www.nachrichten_xyz.de>
<lade kompletten html-code in einen Zwischenpuffer1>
<gehe 10 min später wieder auf www.nachrichten_xyz.de und lade den kompletten html-code in einen Zwischenpuffer2>
<vergleiche Zwischenpuffer1 mit Zwischenpuffer2, wenn Zwischenpuffer1 != Zwischenpuffer2 dann schicke email an mich>


Was meint Ihr? Müsste eigentlich klappen.
Wie sage ich denn per code <lade komplette html-code in einen Zwischpuffer>?
Also irgendwie muss es gehen: Beispiel Google Crome: Wenn man F12 drückt, erschein auch der komplette html-code.
colinardo
Lösung colinardo 28.08.2014 aktualisiert um 11:42:51 Uhr
Goto Top
Beispiel: www.nachrichten_xyz.de ist statisch aufgebaut.
wenn das so ist ...
<?php
$html = file_get_contents('http://domain.de');  
$strFile = "temp.html";  
if(!file_exists($strFile)){
	file_put_contents($strFile,$html);
}else{
	$strOldHTML = file_get_contents($strFile);
	if ($strOldHTML != $html){
		echo "Inhalt hat sich verändert!";  
		mail("empfaenger@domain.de","Betreff","Inhalt der Seite hat sich geändert");  
		file_put_contents($strFile,$html);
	}else{
		echo "Inhalt hat sich nicht verändert";  
	}
}
?>
Grüße Uwe
MiguelMesa
MiguelMesa 28.08.2014 um 11:43:41 Uhr
Goto Top
TOP Antwort! Danke!
MiguelMesa
MiguelMesa 26.07.2015 um 14:46:20 Uhr
Goto Top
Hallo, der code funktioniert wunderbar!

Wie kann ich den Code ändern, wenn ich nur ein <div> einer website vergleichen will?
colinardo
colinardo 26.07.2015 aktualisiert um 21:28:37 Uhr
Goto Top
Zitat von @MiguelMesa:
Wie kann ich den Code ändern, wenn ich nur ein <div> einer website vergleichen will?
Aus dem HTML Code via preg_match den DIV Container extrahieren und nur dessen Inhalt vergleichen.
Oder das HTML in ein DOMDocument laden und den jeweiligen DIV Container selektieren speichern und vergleichen.
http://php.net/manual/de/domdocument.loadhtml.php
Wenn du mir eine Beispielseite postest mit dem gewünschten zu extrahierenden DIV mach ich dir gerne ein Beispiel.

Grüße Uwe