我怎么知道谷歌蜘蛛或其他蜘蛛是否访问我的页面?

时间:2010-11-12 22:22:17

标签: php web-crawler user-agent

我怎么知道谷歌蜘蛛或其他蜘蛛是否访问我的网页?

<?php

if ("this is a spider") {
header('Location: index.php');
exit;
}

?>

4 个答案:

答案 0 :(得分:5)

您可以使用USER_AGENT标题识别大多数搜索引擎抓取工具,如this question中所述。

然而,请注意,您似乎要尝试做的事情 - 向抓取者展示与人类访问者不同的内容 - 是一种技术also known as "cloaking",并且搜索引擎根本不会接受。

据我所知,对谷歌来说,这会导致严重的处罚,直到你的网站完全从索引中消失。

我会这样做,而是采用合法的SEO优化。

答案 1 :(得分:1)

您必须检查用户代理。您可以查看这些页面以获取更多信息: http://fr.wikipedia.org/wiki/User-Agent#Robots
http://www.user-agents.org/

然后,您只需要解析变量$ _SERVER ['HTTP_USER_AGENT']。

答案 2 :(得分:1)

您可以查找全局变量的值:$ _SERVER ['HTTP_USER_AGENT']。对于谷歌蜘蛛,该值看起来像“Googlebot *”

PHP的get_browser函数也很有用(检查返回的浏览器类型是否已知 - 如果不是,那么很可能是蜘蛛或爬虫)。

答案 3 :(得分:0)

虽然用户代理是一个体面的标志,它是googlebot,但更好的过程是使用概述here(在检查用户代理之后),因为伪造用户代理非常容易。函数gethostbyaddrgethostbyname对此有好处。