2011-10-14 18 views
5

que tienen la siguiente función para obtener la última fecha de acceso del robot de Google:¿Cómo puedo obtener la hora en que Google bot accedió por última vez a la página?

//get googlebot last access 
function googlebot_lastaccess($domain_name) 
{ 
    $request = 'http://webcache.googleusercontent.com/search?hl=en&q=cache:'.$domain_name.'&btnG=Google+Search&meta='; 
    $data = getPageData($request); 
    $spl=explode("as it appeared on",$data); 
    //echo "<pre>".$spl[0]."</pre>"; 
    $spl2=explode(".<br>",$spl[1]); 
    $value=trim($spl2[0]); 
    //echo "<pre>".$spl2[0]."</pre>"; 
    if(strlen($value)==0) 
    { 
     return(0); 
    } 
    else 
    { 
     return($value); 
    }  
} 

echo "Googlebot last access = ".googlebot_lastaccess($domain_name)."<br />"; 

function getPageData($url) { 
if(function_exists('curl_init')) { 
$ch = curl_init($url); // initialize curl with given url 
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // add useragent 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // write the response to a variable 
if((ini_get('open_basedir') == '') && (ini_get('safe_mode') == 'Off')) { 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // follow redirects if any 
} 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); // max. seconds to execute 
curl_setopt($ch, CURLOPT_FAILONERROR, 1); // stop when it encounters an error 
return @curl_exec($ch); 
} 
else { 
return @file_get_contents($url); 
} 
} 

Pero este guión me imprime como resultado la captura de toda la página en la pantalla, es decir. toda la página se almacena en caché en google, pero quiero capturar solo la fecha y hora después de las palabras as it appeared on e imprimirla, por ejemplo .: 8 Oct 2011 14:03:12 GMT.

Cómo?

+0

Me pregunto si hay alguna API de Google para obtener el valor ... – Raptor

Respuesta

5

cambiar esta línea:

echo "Googlebot last access = ".googlebot_lastaccess($domain_name)."<br />"; 

con esto:

$content = googlebot_lastaccess($domain_name); 
$date = substr($content , 0, strpos($content, 'GMT') + strlen('GMT')); 
echo "Googlebot last access = ".$date."<br />"; 
+0

gracias respuesta rápida y trabajando – grigione

+0

problema mmm google me prohibir Nuestros sistemas han detectado un tráfico inusual desde el ordenador de la red. ¿Alguna solución suave? – grigione

+0

@grigione Por lo general, te expulsan por un tiempo. No abuse de Google haciendo una solicitud demasiado. Está prohibido por su licencia de uso. –

3

Por qué consulta Google en cuanto a cuándo fue la última en su sitio cuando se puede detectar el robot de Google en su sitio y qué páginas sus sobre ? También le permitirá realizar un seguimiento de dónde fue Googlebot con una simple función de escribir en la base de datos.

Ver Stack Overflow pregunta how to detect search engine bots with php?

Cuestiones relacionadas