【发布时间】:2010-11-12 22:22:16
【问题描述】:
我如何知道谷歌蜘蛛或其他蜘蛛是否访问了我的页面?
<?php
if ("this is a spider") {
header('Location: index.php');
exit;
}
?>
【问题讨论】:
-
如果您不希望搜索机器人访问您的某些页面,请将它们标记为
robots.txt。
标签: php web-crawler user-agent
我如何知道谷歌蜘蛛或其他蜘蛛是否访问了我的页面?
<?php
if ("this is a spider") {
header('Location: index.php');
exit;
}
?>
【问题讨论】:
robots.txt。
标签: php web-crawler user-agent
您可以使用USER_AGENT 标头来识别大多数搜索引擎爬虫,如this question 中所述。
但是,请注意,您似乎试图做的事情 - 向爬虫提供与人类访问者不同的内容 - 是一种技术 also known as "cloaking",并且根本不被搜索引擎接受。
据我所知,对于 Google,这可能会导致重罚,直至您的网站完全从索引中消失。
我会顺其自然,而是采用合法的 SEO 优化。
【讨论】:
您可以查找全局变量的值: $_SERVER['HTTP_USER_AGENT'] 。对于 google spider,该值将类似于“Googlebot*”
PHP 的get_browser 函数也很有用(检查返回的浏览器类型是否已知——如果不是,则很可能是蜘蛛或爬虫)。
【讨论】:
您必须检查用户代理。您可以查看这些页面以获取更多信息:
http://fr.wikipedia.org/wiki/User-Agent#Robots
http://www.user-agents.org/
然后,您只需解析变量 $_SERVER['HTTP_USER_AGENT']。
【讨论】:
虽然用户代理是 googlebot 的良好标志,但更好的方法是使用here 概述的内容(在检查用户代理之后),因为伪造用户代理非常容易。函数gethostbyaddr 和gethostbyname 会很好地解决这个问题。
【讨论】: