有没有办法在我的网站上检测搜索引擎或抓取工具.我在管理员的phpBB中看到我们可以看到并允许搜索引擎,我们也可以看到机器人的最后一次访问(如Google Bot).
PHP中的任何脚本?不是Google Analytic或同类应用程序.我需要为我的博客网站实现这一点,我认为有一些方法可以找到答案吗?
您可以使用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%以上的爬虫/访问者有效.
您可以尝试使用其用户代理字符串检测它们.可在此处找到它们的列表:http://www.botsvsbrowsers.com/
搜索引擎倾向于使用履带式和机器人这两个词.
搜索引擎几乎是访问robots.txt的唯一互联网用户.
有一些IP已知是像GoogleBot这样的机器人.