据我所知,
$ _SERVER ['REMOTE_HOST']应以"google.com"或"yahoo.com"结尾.
但它是最保证的方法吗?
还有其他出路吗?
您可以按用户代理和IP地址识别搜索引擎.更多信息可以在如何识别搜索引擎蜘蛛和网络机器人中找到.值得注意的还有这个清单.但是,您不应将用户代理(甚至远程主机)视为必然的确定性.用户代理实际上只不过是另一端告诉你的东西,它当然可以自由地告诉你任何事情.编写代码假装成Googlebot是微不足道的.
在PHP中,这意味着看$_SERVER['HTTP_USER_AGENT']和$_SERVER['REMOTE_HOST'].
有很多搜索引擎,但老实说,这只是你真正关心的大多数搜索引擎.谷歌和雅虎几乎拥有全部市场.但当然这取决于你想要达到的目标.
注意:要非常小心处理的搜索引擎不同,以普通用户(如"神雕侠侣连字符的网站"乔尔把它)的,当涉及到的内容.在特别令人震惊的情况下,这可能会使您的网站从该搜索引擎中删除.即使这种情况没有发生,你也可能会让一些用户离开去网站期待某些东西.如果他们出现了"请注册以查看此文章"框,那么请抓住您的高跳出率.
首先,我希望您不要尝试这样做,以便为搜索引擎机器人提供与您的网站包含的普通用户不同的内容.如果他们发现您这样做,您的网站将完全从其列表中删除.只要您了解它的风险,您通常可以找到有关他们将使用的唯一用户代理的信息:
但是,有些人(通常是表现不佳的)网络抓取工具会将其用户代理字符串设置为与Google等"合法"抓取工具相同.您可以通过对机器人的IP地址/主机名进行查找来捕获这些内容,以确保它们实际上来自Google/Yahoo/etc.有关在主机名查找中查找内容的更多信息(来自本文):
- Google抓取工具将以googlebot.com结尾,例如crawl-66-249-70-244.googlebot.com.
- Yahoo抓取工具将以llf520064.crawl.yahoo.net中的crawl.yahoo.net结尾.
- Live Search抓取工具将以msnbot-65-55-104-161.search.msn.com中的search.msn.com结尾.
- Ask crawler将以crawler4037.ask.com中的ask.com结尾.
| 归档时间: |
|
| 查看次数: |
14253 次 |
| 最近记录: |