一般都是通过检测
$_SERVER['HTTP_USER_AGENT']
的值来判断,如果是普通用户,这个值就是用户所用的浏览器的名字如:
Mozilla之类的
如果是百度爬虫,那么这个值是
Baiduspider
所以我们代码可以这样来判断,假设是php
function is_crawler() {
$userAgent = strtolower($_SERVER[‘HTTP_USER_AGENT’]);
$spiders = array(
'Googlebot', // Google 爬虫
'Baiduspider', // 百度爬虫
'Yahoo! Slurp', // 雅虎爬虫
'YodaoBot', // 有道爬虫
'msnbot' // Bing爬虫
。。。// 更多爬虫关键字
);
foreach ($spiders as $spider) {
$spider = strtolower($spider);
if (strpos($userAgent, $spider) !== false) {
return true;
}
}
return false;
}
通过上面的函数的返回值可以判断,你可以更改上面的函数直接打印出爬虫的名字,这个你自己实现。
我们知道
HTTP_USER_AGENT
只不过是http request header的一个值,那么很容易改写它,从而来伪装是搜索引擎的爬虫。那么我们怎么来检测呢?有办法,就是域名反查工具
nslookup
这是linux的一个命令工具,后面跟ip地址,就会打印出域名
nslookup xxx.xxx.xxx.xxx
如果结果含有baidu之类的字样,就是百度的爬虫了。
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.
服务器日志不是可以看的
你是没有权限。