【问题标题】:how to detect search engine visites on my site? like phpBB如何检测我网站上的搜索引擎访问?喜欢phpBB
【发布时间】:2009-07-20 16:03:35
【问题描述】:

有什么方法可以检测我网站上的搜索引擎或爬虫。 我在管理员的 phpBB 中看到我们可以看到并允许搜索引擎,我们还可以看到机器人的最后一次访问(如 Google Bot)。

PHP 中有任何脚本吗? 不是 Google Analytic 或同类应用程序。 我需要为我的博客网站实现这一点,我认为有什么方法可以找到?

【问题讨论】:

    标签: php web-crawler


    【解决方案1】:

    您可以使用机器人或网络浏览器发送给您的 IP 地址或“用户代理”字符串。

    当 Googlebot(或大多数其他行为良好的机器人)访问您的网站时,它们会向您发送一个 $_SERVER['HTTP_USER_AGENT'] 变量来标识它们是什么。一些例子是:

    Googlebot/2.​​1 (+http://www.google.com/bot.html)

    NutchCVS/0.8-dev (Nutch;http://lucene.apache.org/nutch/bot.html

    百度蜘蛛+(+http://www.baidu.com/search/spider_jp.html)

    Mozilla/5.0(X11;U;Linux i686;en-US)AppleWebKit/531.4(KHTML,如 Gecko)

    您可以在这些网站上找到更多示例: link text link text

    然后您可以使用 PHP 检查这些用户代理字符串并确定用户是否是搜索引擎。我经常使用这样的东西:

    $searchengines = array(
        'Googlebot', 
        'Slurp', 
        'search.msn.com', 
        'nutch', 
        'simpy', 
        'bot', 
        'ASPSeek', 
        'crawler', 
        'msnbot', 
        'Libwww-perl', 
        'FAST', 
        'Baidu', 
        );
    $is_se = false;
    foreach ($searchengines as $searchengine){
       if (!empty($_SERVER['HTTP_USER_AGENT']) and 
                false !== strpos(strtolower($_SERVER['HTTP_USER_AGENT']), strtolower($searchengine)))
        {
                $is_se = true;
                break;
        }
    }
    if ($is_se) { print('Its a search engine!'); } 
    

    请记住,任何检测方法(Google Analytics(分析)或其他统计数据包或其他)都不会 100% 准确。一些网络浏览器允许您设置自定义用户代理字符串,而一些行为不端的网络爬虫可能根本不会发送用户代理字符串。不过,这种方法可能对 95% 以上的爬虫/访问者有效。

    【讨论】:

      【解决方案2】:
      1. 您可以尝试使用它们的用户代理字符串来检测它们。可以在此处找到它们的列表:http://www.botsvsbrowsers.com/

        搜索引擎倾向于使用爬虫机器人这两个词。

      2. 搜索引擎几乎是唯一访问robots.txt的互联网用户。

      3. 有些 IP 是已知的机器人,例如 GoogleBot。

      【讨论】:

        【解决方案3】:

        使用Piwik Device Detector library

        它会自动检测a plethora of bots 和自动监控服务。

        【讨论】:

          【解决方案4】:

          可让您保留数据的 Google Analytics(分析)替代方案:

          Piwik 是用 PHP 实现的,运行方式与 GA 相同。另外两个是 Web 服务器日志分析器。

          【讨论】:

            【解决方案5】:

            Google Analytics(分析)可让您查看您网站的抓取统计信息。

            【讨论】:

              猜你喜欢
              • 2012-12-14
              • 2011-04-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多