有没有办法在我的网站上检测搜索引擎或抓取工具。 我在管理员处看到 phpBB ,我们可以看到并允许搜索引擎,我们也可以看到机器人的最后一次访问(如Google Bot)。
PHP中的任何脚本? 不是Google Analytic或同类应用程序。 我需要为我的博客网站实现这一点,我认为有一些方法可以找到答案吗?
答案 0 :(得分:10)
您可以使用机器人或网络浏览器发送给您的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
Baiduspider +(+ 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%准确的。某些Web浏览器允许您设置自定义用户代理字符串,而一些行为不当的Web爬网程序可能根本不会发送用户代理字符串。这种方法可能对95%以上的爬虫/访问者有效。
答案 1 :(得分:5)
您可以尝试使用其用户代理字符串检测它们。可以在此处找到它们的列表:http://www.botsvsbrowsers.com/
搜索引擎倾向于使用 crawler 和 robot 这两个词。
搜索引擎几乎是唯一访问robots.txt的互联网用户。
有一些IP已知是像GoogleBot这样的机器人。
答案 2 :(得分:1)
使用Piwik Device Detector library。
它会自动检测a plethora of bots和自动监控服务。
答案 3 :(得分:0)
答案 4 :(得分:-2)
Google Analytics(分析)可让您查看您网站的抓取统计信息。