WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 10.01.2011, 15:15   #1
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard PHP: Website periodisch parsen

Hallo! Ich würde gerne "elektronisches Stalking" betreiben: Auf eine Website ist der Status eines Fahrzeuges immer gelistet (sofern brav an-/abgemeldet). Ich würde gerne mittels PHP diesen Status gerne z.b. alle 5 Minuten auslesen und loggen (und bei unserer HP dann auf Bereit/Unterwegs setzen). Ich finde zwar einige Beispiel im Internet, wie ich in PHP Seiten parsen kann, aber keinen, wie ich das periodisch tun kann (ohne dabei die Seite immer in einem Browser offen zu lassen). LG Ps: Es geht um unser Fahrzeug, mich interessiert primär ob die Meldungen mit dem KM-Buch einstimmen, damit ich 2011 schneller auf Unstimmigkeiten reagieren kann...
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 10.01.2011, 17:23   #2
athropos
Hero
 
Registriert seit: 24.07.2001
Alter: 46
Beiträge: 801


athropos eine Nachricht über Skype™ schicken
Standard

Zumindest unter Windows kannst du dir im Scheduler einen Job einrichten, der alle 5 Minuten die Seite aufruft (bzw. mittels der php.exe parsed).
Bin mir sicher, daß das unter Linux genauso möglich ist.
____________________________________
Einstein, Pascal and Newton are playing hide and seek. Einstein is \"it\" so he faces the wall, closes his eyes and counts to π.
Pascal runs off like an idiot but Newton pulls out a piece of chalk and draws a 1m x 1m square on the ground and then stands in it\'s centre.

Einstein\'s done counting and turns around and sees Newton, so he grabs him and screams \"I found Newton!\"

Then Newton smirks and says, \"I\'m not Newton, I\'m Pascal\".
athropos ist offline   Mit Zitat antworten
Alt 10.01.2011, 17:25   #3
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard

Wär möglich, wenn ich dafür einen laufenden PC hätte! Allerdings will ich es per PHP machen, weil das der einzige Computer ist (gehostet), der immer eingeschaltet ist / sein sollte...
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 10.01.2011, 18:07   #4
ZombyKillah
Trashtroll
 
Benutzerbild von ZombyKillah
 
Registriert seit: 19.10.2008
Ort: far away but still in austria
Beiträge: 1.194

Mein Computer

Standard

Hast du auf den Server keinen Zugriff, oder nur eine FTP Zugriff, wo du die Skripts drauf-kopieren kannst?

Ich verwende php in einen ähnlichen Fall ...
Auf einen Linux Server, wo
1x alle 10min (mit crontab (taskmanager von linux)) eine liste von Seiten erstellt wird ... (eigentlich werden für jede Abfrage eigene php skripts erstellt ...)
und diese ständig abgearbeitet ...

Habe mich früher auf jede minute beschränkt ... war mir aber zu langsam.

Wie/was hast du vor zu loggen?
csv files?
datenbank?
Welche Information brauchst du?
Ist das logen notwendig, oder willst du nur einen Status von einer anderen Seite darstellen?
... sind die primär wichtigsten Fragen.
____________________________________
It's more fun to write crap that nothing!
Just kidding.

Ich bin für kreative Rechtschreibung, da kann man keine Fehler machen
ZombyKillah ist offline   Mit Zitat antworten
Alt 10.01.2011, 22:49   #5
SourceGrabber
Abonnent
 
Registriert seit: 15.11.2001
Alter: 40
Beiträge: 543


SourceGrabber eine Nachricht über ICQ schicken SourceGrabber eine Nachricht über AIM schicken SourceGrabber eine Nachricht über Yahoo! schicken
Standard

Wenn du die Möglichkeit hast auf einem Linux Server einen Crownjob einzurichten, dann würde ich das machen und mit lynx das Script regelmäßig aufrufen um den Status auszulesen und in eine Datenbank zu schreiben. Von dort kannst du dir dann auf einfache Weise Listen generieren, die du zum Vergleich mit dem KM-Buch verwendest.

Noch einfacher wäre es natürlich die ursprüngliche Webseite so anzupassen, dass sie bei jeder Statusänderung einen Eintrag in der Datenbank erstellt.
____________________________________
- Nichts ist unmöglich -
SourceGrabber ist offline   Mit Zitat antworten
Alt 10.01.2011, 23:32   #6
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard

Wieso mit Lynx? PHP Scripte kann man direkt ausführen wenn es der Server erlaubt.
Philipp ist offline   Mit Zitat antworten
Alt 11.01.2011, 00:03   #7
ZombyKillah
Trashtroll
 
Benutzerbild von ZombyKillah
 
Registriert seit: 19.10.2008
Ort: far away but still in austria
Beiträge: 1.194

Mein Computer

Standard

Du kannst auch aus einen php skript einen neuen php skript aus aufrufen ...
der alte wird dann durch ein time-out gekillt ...

... also eine einfache rekursive Schleife, die das Risiko eingeht, den Server irgendwann zu überlasten ... wenn sie zu oft gestartet wird.
Wobei man dieses durch ein überprüfen, ob eine Datei vorhanden ist speeren kann ...

PHP-Code:
function do_lock(){
 
$file "running.lock";
 if (
$fh fopen($file"r")) { //Wenn das file schon exestiert und geöffent werden kann
  
$last_time fget($fh);
  
fclose($fh);
  
$now date("U");
  if (
$last_time $now 10) return false;
   
//Und der skript vor unter 10 sek rannte gebe falsch zurück.
 
}
 
$fh fopen($file"w+");
 
fput($fhdate("U"));
 
fclose($fh);
 return 
true;
}
function 
do_unlock(){
 
$file "running.lock";
 
unlink($file);
}

if (
do_lock()){
...

...
sleep(5);    //Warte 5 sek ...
do_unlock(); //entferne das Schloss ...
$me "http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
$run_again fopen($me"r");
fget($run_again); //rufe dich selbst auf ...

____________________________________
It's more fun to write crap that nothing!
Just kidding.

Ich bin für kreative Rechtschreibung, da kann man keine Fehler machen
ZombyKillah ist offline   Mit Zitat antworten
Alt 11.01.2011, 08:36   #8
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard

Speichern würde ich gern in eine mysql-db, aber csv-file geht auch. Ob ich crone-job o.ä. machen darf, weiß ich nicht - Ich bin nicht einmal für die HP zuständig, sondern hab nur einen RedaktionsUser... Ich frag mal nach. Ps: Es geht konkret um max. 160 Zeichen lange Textmeldungen und dazu zwei Datetimes aus eine Tabelle, wenn ein Schlüsselwert drin vorkommt. Die Rekursion hat eine unschöne Warnung am Server produziert :-(
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 11.01.2011, 18:06   #9
SourceGrabber
Abonnent
 
Registriert seit: 15.11.2001
Alter: 40
Beiträge: 543


SourceGrabber eine Nachricht über ICQ schicken SourceGrabber eine Nachricht über AIM schicken SourceGrabber eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von Philipp Beitrag anzeigen
Wieso mit Lynx? PHP Scripte kann man direkt ausführen wenn es der Server erlaubt.
Viele Webhoster erlauben das jedoch nicht, dann bleibt dir der Umweg leider nicht erspart.

Ich glaube Cronjob wäre ganz gut, wenn möglich und sonst könntest ja noch einen Redirect auf das Script selbst machen, dazu muss aber halt dann der Browser der es gestartet hat offenbleiben. Außerdem kommt dann auch noch ein ev. Problem mit Timeouts dazu.
____________________________________
- Nichts ist unmöglich -
SourceGrabber ist offline   Mit Zitat antworten
Alt 11.01.2011, 20:33   #10
zAPPEL
Inventar
 
Registriert seit: 07.11.2001
Ort: Perchtoldsdorf
Alter: 45
Beiträge: 2.085

Mein Computer

Standard

Bei fast jedem Hoster wird dir diese Endlosschleife zu einem Timout führen - das ist eine ziemlich "hässliche" Lösung

lg
____________________________________
„Das menschliche Gehirn ist eine großartige Sache.
Es funktioniert vom Moment der Geburt an – bis zu
dem Zeitpunkt, wo du aufstehst, um eine Rede zu halten.“ Mark Twain

"Windle shook his head sadly. Four exclamation marks, the sure sign of an insane mind" Reaper Man, Terry Pratchett
zAPPEL ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:50 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag