`
wbj0110
  • 浏览: 1599165 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

使用Google Analytics跟踪搜索引擎的抓取记录

阅读更多
<?php
/*
 * Name:Tracking Robots With Google Analytics
 * Author:biaodianfu
 * URI;http://www.biaodianfu.com/tracking-robots-with-google-analytics.html
 */
$utmac = 'UA-16811947-5'; //输入Goolgle Analytics配置生成的跟踪ID
$domain = 'biaodianfu.com'; //输入要统计的网站的域名
$utmGifLocation = "http://www.google-analytics.com/__utm.gif"; //请求URL地址
$utmv = "4.8.9"; //Google Analytics统计版本
$title = ""; //网站标题,wp_title() ;

/* Robots
 * Google  http://www.google.com/support/webmasters/bin/answer.py?hl=cn&answer=1061943
 * Baidu  http://tieba.baidu.com/club/9374916/p/10669831
 * Yahoo  http://en.wikipedia.org/wiki/Yahoo!_Slurp
 * Bing  http://www.bing.com/community/site_blogs/b/webmaster/archive/2009/07/17/new-bot-work-continues-at-bing.aspx
 * SOSO  http://help.soso.com/webspider.htm
 */
$bots = array( 'compatible; Googlebot/([0-9.]{1,10})?' => 'Google',
                'Googlebot/([0-9.]{1,10})?'=>'Google',
                'Googl(e|ebot)(-News)/([0-9.]{1,10})' => 'Google News',
                'Googl(e|ebot)(-News)/' => 'Google News',
                'Googl(e|ebot)(-Image)/([0-9.]{1,10})' => 'Google Image',
                'Googl(e|ebot)(-Image)/' => 'Google Image',
                'Googl(e|ebot)(-Video)/([0-9.]{1,10})' => 'Google Video',
                'Googl(e|ebot)(-Video)/' => 'Google Video',
                'Googl(e|ebot)(-Sitemaps)/([0-9.]{1,10})?' => 'Google-Sitemaps',
                'Googl(e|ebot)(-Sitemaps)' => 'Google-Sitemaps',
                'compatible; Googlebot-Mobile/([0-9.]{1,10})?' => 'Google Mobile',
                'Googl(e|ebot)(-Mobile)/([0-9.]{1,10})?' => 'Google Mobile',
                'compatible; Mediapartners-Google/([0-9.]{1,10})?' => 'Google Mediapartners',
                'Mediapartners-Google[ /]([0-9.]{1,10})' => 'Google Mediapartners',
                'Mediapartners-Google' => 'Google Mediapartners',
                '^AdsBot-Google' => 'Google-AdsBot',
                '^Feedfetcher-Google' => 'Google-Feedfetcher',
                'compatible; Baiduspider/([0-9.]{1,10})?' => 'Baidu',
                'Baiduspider' => 'Baidu',
                'BaiduCustomer' => 'Baidu Customer',
                'Baidu-Thumbnail' => 'Baidu Thumbnail',
                'Baidu-Transcoder' => 'Baidu Mobile',
                'baiduspider-mobile-gate' => 'Baidu Mobile',
                'Yahoo(! ([a-z]{1,3} )?Slurp|-)' => 'Yahoo',
                'Yahoo! Slurp China' => 'Yahoo China',
                'YahooFeedSeeker' => 'Yahoo Feed',
                'Yahoo-Blogs' => 'Yahoo Blog',
                'Yahoo ContentMatch Crawler' => 'Yahoo Ads',
                'Yahoo-MMCrawler ' => 'Yahoo Image',
                'MSN(BOT|PTC)[ /]([0-9.]{1,10})' => 'MSN',
                'MS Search ([0-9.]{1,10}) Robot' => 'MSN',
                'MSNBOT_Mobile' => 'MSN Mobile',
                'MSMOBOT' => 'MSN Mobile',
                'MSNBOT-(MEDIA|PRODUCTS|ACADEMIC|NEWSBLOGS)[ /]([0-9.]{1,10})' => 'MS Live Search',
                'Sosospider' => 'SoSo',
                'Sosoblogspider' => 'SoSo Blog',
                'Sosoimagespider' => 'SoSo IMAGE',
                'Sogou web spider[ /]([0-9.]{1,10})' => 'Sogou',
                'Sogou-Test-Spider[ /]([0-9.]{1,10})' => 'Sogou',
                'Sogou web robot' => 'Sogou',
                'Sogou orion spider[ /]([0-9.]{1,10})' => 'Sogou',
                'YodaoBot[ /]([0-9.]{1,10})' => 'Youdao',
                'YodaoBot-Image[ /]([0-9.]{1,10})' => 'Youdao Image',
                'YodaoBot-Reader[ /]([0-9.]{1,10})' => 'Youdao Reader',
                'QihooBot[ /]([0-9.]{1,10})' => 'Qihoo',
                'gougou' => 'GouGou',
                '(robot|spider|harvest|bot|(?<!msie)crawler)' => 'Unknown Robot'
                );

$os = array ( 'wi(n|ndows)?' => 'windows',
              'linux[ /\-]([a-z0-9._]{1,10})' => 'linux',
              'linux' => 'linux',
              'Mac[ _]?OS[ _]?X[ /]([0-9.]{1,10})' => 'macosx',
              'Mac[ _]?OS[ _]?X' => 'macosx',
              'Mac 10.([0-9.]{1,10})' => 'macosx',
              'Mac(_Power|intosh.+P)PC' => 'macppc',
              'beos[ a-z]*([0-9.]{1,10})' => 'beos',
              'beos' => 'beos',
              'fedora' => 'fedora',
              'free[ \-]?bsd[ /]([a-z0-9._]{1,10})' => 'freebsd',
              'free[ \-]?bsd' => 'freebsd',
              'open[ \-]?bsd[ /]([a-z0-9._]{1,10})' => 'openbsd',
              'open[ \-]?bsd' => 'openbsd',
              'PCLinuxOS[ /]?([0-9.]{1,10})' => 'pclinux',
              'ubuntu' => 'ubuntu'
              );

function domainHash($domain) {
 if(!$domain || $domain=="") return 1;
 $h=0; $g=0;
 for($i=strlen($domain)-1;$i>=0;$i--) {
  $c = (int)(ord($domain[$i]));
  $h = (($h << 6) & 0xfffffff) + $c + ($c << 14);
  $g = ($h & 0xfe00000);
  if($g!=0) $h = ($h ^ ($g >> 21));
 }
 return $h;
}

function httpRequest($utmUrl){
    if(function_exists('curl_exec')){
    $ch = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_URL, $utmUrl);
  $data = curl_exec($ch);
  curl_close($ch);
    }
    elseif(function_exists('file_get_contents')){
        $options = array(
            "http" => array(
                "method" => "GET",
                "user_agent" => $_SERVER["HTTP_USER_AGENT"],
                "header" => ("Accepts-Language: " . $_SERVER["HTTP_ACCEPT_LANGUAGE"]))
        );
        $data = file_get_contents( $utmUrl, false, stream_context_create($options));
    }
}

if ( empty( $_SERVER['HTTP_REFERER'] ) && $_SERVER["HTTP_USER_AGENT"] ){
    foreach ( $os as $patternos => $o ){
        if ( preg_match('#'.$patternos.'#msi', $_SERVER["HTTP_USER_AGENT"] ) == 0){
            foreach( $bots as $patternbots => $bot ){
                if (preg_match( '#'.$patternbots.'#i' , $_SERVER['HTTP_USER_AGENT'] ) == 1){
                    $botname = preg_replace ( "/\\s{1,}/i" , '-' , $bot );
                    $utmUrl = $utmGifLocation . "?" .
                              "utmwv=" . $utmv .
                              "&utmn=" . rand(0, 0x7fffffff) .
                              "&utmhn=" . urlencode($_SERVER["SERVER_NAME"]) .
                              "&utmdt=" . urlencode($title).
                              "&utmr=-" .
                              "&utmp=" . urlencode($_SERVER["REQUEST_URI"]) .
                              "&utmac=" . $utmac .
                              "&utmcc=" .
                                '__utma%3D'.domainHash($domain).'.'.rand(0, 0x7fffffff).'.'.time().'.'.time

().'.'.time().'.1%3B%2B'.
                                '__utmb%3D'.domainHash($domain).'%3B%2B'.
                                '__utmc%3D'.domainHash($domain).'%3B%2B'.
                                '__utmz%3D'.domainHash($domain).'.'.time().'.1.1.utmccn%3D(organic)%7Cutmcsr%

3D'.$botname.'%7Cutmctr%3D'.$_SERVER["REQUEST_URI"].'%7Cutmcmd%3Dorganic%3B%2B'.
                                '__utmv%3D'.domainHash($domain).'.Robot%20hostname%3A%20'.gethostbyaddr( $_SERVER

['REMOTE_ADDR'] ).'%3B';
                    httpRequest($utmUrl);
                }
            }
        }
    }
}
?>

本方法适合使用虚拟主机的朋友,如果您自己有服务器的话建议还是开启服务器日志使用awstats进行分析,英文这样你才能真正的了解蜘蛛,特别是对服务器状态码分析统计。

以上代码参考了一个法文网站,由于代码比较老(2008年的),同时中间的搜索引擎的User-Agent和不太适合中国网站,百度也在近期修改了User-Agent。自己修改了下代码。本代码还未测试,如果发现问题请及时联系。

分享到:
评论

相关推荐

    谷歌搜索引擎优化初学者指南

    ### 谷歌搜索引擎优化初学者指南 #### 序言 随着互联网的飞速发展,搜索引擎已成为人们查找信息的重要工具之一。为了使网站能够在搜索引擎中获得更好的排名,从而吸引更多的流量,搜索引擎优化(SEO)变得至关重要...

    搜索引擎优化和搜索引擎友好

    合理设置robots.txt文件可以避免搜索引擎抓取无意义的页面,提高抓取效率。 #### 六、SEO中的常见问题 1. **网站结构复杂**:复杂的网站结构会使得搜索引擎难以抓取所有的页面。建议使用扁平化的网站结构,并通过...

    搜索引擎优化方案

    利用Google Analytics和Google Search Console等工具监控网站性能,跟踪关键词排名、用户行为和转化率。根据数据反馈,定期调整和优化SEO策略。 总结,搜索引擎优化是一个持续的过程,需要结合技术和内容策略,以...

    搜索引擎排名秘笈.rar

    3. 网页结构:清晰的网页结构有利于搜索引擎爬虫抓取信息。合理使用HTML标签,如H1、H2,以及良好的内部链接结构,有助于提高页面权重。 二、搜索引擎优化策略 1. 增强用户体验:快速的加载速度、响应式设计、易用...

    google 官网搜索引擎文档

    SEO是一个持续的过程,需要定期分析网站性能,使用Google Analytics和Google Search Console等工具进行数据分析,识别并修复问题,不断调整优化策略以适应搜索引擎算法的更新。 总结来说,Google搜索引擎优化入门...

    让你的网站成为搜索引擎的亮点

    10. **跟踪与分析**:使用Google Analytics等工具监测网站性能,分析用户行为,以便持续改进SEO策略。 综上所述,设计一个能在搜索引擎中脱颖而出的网站,需要综合运用各种SEO技巧,同时遵循搜索引擎的规则,以提供...

    搜索引擎优化(SEO)知识完全手册 下载

    3. **内部链接**:合理使用内部链接可以提高网站的导航结构,有助于权重传递和搜索引擎爬虫的抓取。 三、Off-page SEO(站外优化) 1. **外部链接**:来自权威网站的反向链接(Backlinks)被视为投票,增加网站的...

    搜索引擎优化,搜索引擎定位

    这些元素直接影响搜索引擎蜘蛛抓取和理解网站内容的效率。 2. On-page SEO:主要包括关键词研究、内容创作、元标签(如标题标签、描述标签)优化、内部链接结构等。关键词是连接用户搜索需求和网站内容的关键,高...

    五天提高搜索引擎排名

    9. **监控与分析**:使用Google Analytics和Google Search Console等工具,跟踪网站性能,了解关键词排名、点击率和转化率,以便调整策略。 10. **持续改进**:SEO并非一劳永逸,应定期评估和调整策略。关注搜索...

    搜索引擎优化基础

    确保每个页面都有唯一的标题标签和元描述,同时保持内部链接结构的逻辑性,便于搜索引擎抓取。 **三、内容质量与原创性** 高质量、有价值的内容是SEO的基石。创造独特、有深度的内容能吸引用户并提高他们在网站上的...

    搜索引擎优化宝典__第2版

    此外,它可能会提供关于如何分析和追踪SEO效果,使用工具如Google Analytics和Google Search Console的指导,以及如何制定和调整SEO策略以适应不断变化的搜索引擎环境。 总之,《搜索引擎优化宝典__第2版》将引导...

    Google搜索引擎优化指南

    - 谷歌搜索控制台(Google Search Console):监测搜索引擎抓取状态,发现并修复问题。 - 谷歌分析(Google Analytics):收集网站流量数据,分析用户行为。 #### 十三、利用网络分析服务 - **数据分析**:通过...

    Google搜索引擎优化指南.pdf

    《Google 搜索引擎优化指南》是一份由谷歌官方发布的指南,旨在帮助网站所有者和开发者更好地理解如何优化他们的网站以获得更高的搜索引擎排名。SEO(搜索引擎优化)是提升网站在搜索引擎结果页面中的可见度的一种...

    发现世界搜索引擎GBK.zip

    10. **数据跟踪与分析**:通过工具如Google Analytics、百度统计等监控网站性能,了解用户行为,为优化提供数据支持。 以上这些知识点,可能是“发现世界搜索引擎GBK.zip”中涉及的内容,具体还需要解压文件后查看...

    搜索引擎优化(SEO)知识完全手册

    3. 爬虫友好:避免使用禁止搜索引擎抓取的 robots.txt,确保重要页面可被抓取。 六、跟踪与分析 1. SEO工具:使用如Google Search Console、Google Analytics等工具监控网站性能,识别问题并进行改进。 2. 数据分析...

    搜索引擎优化 SEO 知识完全手册

    3. **网站结构**:清晰的网站结构利于搜索引擎抓取和理解网站内容。合理使用HTML头部标签(如H1-H6),创建XML站点地图,确保内部链接结构良好。 **二、内容优化** 4. **高质量内容**:原创、有价值的内容对吸引...

    搜索引擎优化知识完全手册

    Heading Tags用于组织内容层次,有利于搜索引擎抓取。 四、内容质量与原创性 高质量、有价值的内容是吸引用户和搜索引擎的关键。内容应具有原创性,避免重复,同时满足用户需求,提供信息或解决问题。定期更新内容...

Global site tag (gtag.js) - Google Analytics