2011-10-14 33 views
5

tôi có chức năng sau để có được ngày truy cập cuối cùng của googlebot:Làm cách nào để có được thời gian bot Google truy cập lần cuối trang?

//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); 
} 
} 

Nhưng kịch bản này in tôi như gây ảnh chụp của toàn bộ trang trong màn hình, ví dụ. toàn bộ trang được lưu vào bộ nhớ cache trong google nhưng tôi chỉ muốn ghi lại ngày tháng sau từ as it appeared on và in nó tức là: 8 Oct 2011 14:03:12 GMT.

Làm cách nào?

+0

Tôi tự hỏi nếu có bất kỳ API từ Google để có được giá trị ... – Raptor

Trả lời

5

Thay đổi dòng này:

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

với điều này:

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

nhờ câu trả lời nhanh chóng và làm việc – grigione

+0

vấn đề mmm google cấm tôi hệ thống của chúng tôi đã phát hiện một giao thông bất thường từ máy tính của bạn từ mạng. Bất kỳ giải pháp mềm nào? – grigione

+0

@grigione Thông thường họ cấm bạn trong một thời gian. Đừng lạm dụng Google làm quá yêu cầu. Nó bị cấm bởi giấy phép sử dụng của họ. –

3

Tại sao truy vấn của Google như khi nó lần cuối tại trang web của bạn khi bạn có thể phát hiện Googlebot trên trang web của bạn và những gì các trang của nó trên ? Nó cũng sẽ cho phép bạn theo dõi nơi Googlebot đã đi với một ghi đơn giản để chức năng cơ sở dữ liệu.

Xem Stack Overflow câu hỏi how to detect search engine bots with php?

Các vấn đề liên quan