我有一些地理定位代码,如果网站被机器人抓住,我希望以特定的方式行事,例如谷歌等。
有没有办法推断出来?
答案 0 :(得分:5)
向搜索引擎抓取工具和人类访问者展示不同的内容 - 称为cloaking - 是一件冒险的事情,如果检测到,可能会受到搜索引擎的惩罚。
也就是说,查看this SO answer,其中包含一些维护良好的“机器人列表”的链接。您必须解析USER_AGENT字符串并将其与此类机器人列表进行比较。
答案 1 :(得分:2)
您可以通过检查用户代理或IP来执行此操作。 可能优先使用后者,因为其他不那么有信誉的机器人并不知道欺骗大家伙的用户代理。即使对谷歌等人而言,他们的IP往往处于狭窄的范围内,因此对IP的检测不应该要求编制大量的列表。
答案 2 :(得分:1)
您可以通过user-agent属性进行检查。有关用户代理字符串的更多信息,请在此处查看:http://www.user-agents.org/标记类型为“R = Robot,crawler,spider”的记录。位不保证,用户代理属性可能会因多种因素而发生变化,这不是100%可靠。
答案 3 :(得分:1)
如果您只对设置良好的信誉良好的机器人感兴趣,例如谷歌,雅虎,MSN / Live / Bing /今天是什么,请问等等你可以使用往返DNS检查。
1)检查已知的用户代理(查找已知的子字符串,如googlebot)
例如Mozilla / 5.0(兼容; Googlebot / 2.1; + http://www.google.com/bot.html
2)为请求IP执行反向DNS并检查它是否来自合理的域 例如66.249.71.202的rdns是crawl-66-249-71-202.googlebot.com(非常高兴它来自googlebot.com)
3)在它自己的第2步可以伪造,所以现在检查A记录的dns以获得在步骤2中返回的结果,并确保你有原始的请求IP。
例如上面的dns是
crawl-66-249-71-202.googlebot.com。 A 66.249.71.202
66.249.71.202是请求的IP地址,因此这是一个有效的googlebot。