1

我有一堆目前已在 Google 中编入索引的 URL。鉴于这些网址,有没有办法弄清楚谷歌最后一次抓取它们是什么时候?

手动,如果我检查 Google 中的链接并检查“缓存”链接,我会看到它被抓取的日期。有没有办法自动做到这一点?某种 Google API?

谢谢 :)

4

3 回答 3

3

Google 不为此类数据提供 API。跟踪上次抓取信息的最佳方法是挖掘您的服务器日志。

在您的服务器日志中,您应该能够通过它的典型用户代理识别 Googlebot:Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html)。然后您可以查看 Googlebot 抓取了哪些网址以及何时抓取。

如果您想确定是 Googlebot 抓取了这些页面,您可以使用反向 DNS 查找来验证它。. Bingbot 还支持反向 DNS 查找。

如果您不想手动解析服务器日志,您可以随时使用splunklogstash 之类的东西。两者都是很棒的日志处理平台。

另请注意,SERP 中的“缓存”日期不一定与上次抓取的日期相匹配。Googlebot 可以在“缓存”日期之后多次抓取您的网页,但不会更新其缓存版本。您可以将“缓存日期”更多地视为“最后索引”日期,但这也不完全正确。无论哪种情况,如果您需要重新索引页面,您始终可以使用 Google 网站管理员工具 (GWT)。GWT 中有一个选项可以强制 Googlebot 重新抓取页面,并重新索引页面。每周有 50 个或类似的限制。

于 2012-05-09T17:48:51.993 回答
2
<?php

$domain_name = $_GET["url"];

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

$content = googlebot_lastaccess($domain_name);
$date = substr($content , 0, strpos($content, 'GMT') + strlen('GMT'));
echo "Googlebot last access = ".$date."<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);
 }
}
?>

只需上传这个 PHP 并创建一个 Cron-Job。您可以按以下方式对其进行测试.../bot.php/url=http://www....

于 2012-10-26T13:56:26.630 回答
0

您可以使用链接http://www.gbotvisit.com/检查 google bot 上次访问

于 2012-06-25T14:28:32.010 回答