当前位置:  开发笔记 > 编程语言 > 正文

如何在我的网站上检测搜索引擎访问?像phpBB

如何解决《如何在我的网站上检测搜索引擎访问?像phpBB》经验,为你挑选了2个好方法。

有没有办法在我的网站上检测搜索引擎或抓取工具.我在管理员的phpBB中看到我们可以看到并允许搜索引擎,我们也可以看到机器人的最后一次访问(如Google Bot).

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



1> Keith Palmer..:

您可以使用IP地址或机器人或Web浏览器发送给您的"User-Agent"字符串.

当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

Baiduspider +(+ http://www.baidu.com/search/spider_jp.html)

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

您可以在以下网站上找到更多示例: 链接文本 链接文本

然后,您可以使用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%准确的.某些Web浏览器允许您设置自定义用户代理字符串,而一些行为不当的Web爬网程序可能根本不会发送用户代理字符串.这种方法可能对95%以上的爬虫/访问者有效.



2> Georg Schöll..:

    您可以尝试使用其用户代理字符串检测它们.可在此处找到它们的列表:http://www.botsvsbrowsers.com/

    搜索引擎倾向于使用履带式机器人这两个词.

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

    有一些IP已知是像GoogleBot这样的机器人.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有