Wie entwickle ich einen eigenen PHP-Crawler um meine Website zu crawlen? Konzeptionell?

15.01.2012 02:44 Uhr

Möchte meine Website selbst aufrufen um die Erreichbarkeit zu prüfen und auf PHP-Fehlermeldungen zu überprüfen. Im Moment fehlt mir der Konzeptionelle Ansatz wie ich dies plane und später umsetze.

Bisherige Idee ist mit fsockopen eine Liste von Links in einer Schleife aufzurufen. Den Programmstart über die Konsole auszuführen. Dabei soll dem Programm ermöglicht werden die PHP-Fehlermeldungen auslesen zu können, welche für einen Benutzer von Außen deaktiviert sind. Aber ist es wirklich so simple? Wie sieht es bei einen größeren Mengengerüst von Webseiten aus?

4 Antworten

#1

16.01.2012 09:46 Uhr

Verstehe ich das richtig, dass du nicht die gesamte Seite sondern nur eine oder mehrere von dir festgelegte URLs crawlen und dann auf bestimmte Ausgaben prüfen möchtest?

Ein fertiges Montoring gibt es (für eine Seite kostenlos) z.B. bei pingdom oder du schaust dir für eine Eigenentwicklung mal CURL an.

#2

18.01.2012 16:24 Uhr

Danke schön für deine Antwort. Der Link zu CURL hat mir bereits ein wenig weitergeholfen.

 

#3

20.01.2012 14:35 Uhr

cURL Aufrufe mit Cronjobs starten und per Mail dann Fehler Monitoren

so in etwa http://lamplightdevelopment.com/blog/post/id/using-cron-curl-to-monitor-the-status-of-your-site

#4

06.02.2012 14:52 Uhr

Diese kleine Funktion sollte helfen:

function is_site_available( $url ) {
	
	if ( ! filter_var($url, FILTER_VALIDATE_URL) )
		return 'URL provided wasn‘t valid.';
	
	$curli = curl_init( $url );
	curl_setopt( $curli, CURLOPT_CONNECTTIMEOUT, 10 );
	curl_setopt( $curli, CURLOPT_HEADER, TRUE );
	curl_setopt( $curli, CURLOPT_NOBODY, TRUE );
	curl_setopt( $curli, CURLOPT_RETURNTRANSFER, TRUE );
	
	$response = curl_exec( $curli );
	curl_close( $curli );
	
	if ( $response )
		return 'Site is available';

	return 'nothing found, Site down.';
}

die Funktion aufrufen und die URL mitgeben; den Return packst du in Markup oder mail() um informiert zu werden.

Ähnliche Fragen



Datenschutzerklärung · Impressum