【问题标题】:Detecting if your site is being accessed by a robot检测您的网站是否正在被机器人访问
【发布时间】:2010-02-15 17:09:18
【问题描述】:

我有一些地理定位代码,如果网站被机器人(例如谷歌等

有什么办法可以推断出来吗?

【问题讨论】:

    标签: asp.net seo


    【解决方案1】:

    向搜索引擎爬虫和人类访问者呈现不同的内容 - 称为 cloaking - 是一件有风险的事情,如果检测到,可能会受到搜索引擎的惩罚。

    也就是说,请查看this SO answer,其中包含几个指向维护良好的“机器人列表”的链接。您必须解析 USER_AGENT 字符串并将其与此类机器人列表进行比较。

    【讨论】:

      【解决方案2】:

      您可以通过检查用户代理或 IP 来做到这一点。 可能最好使用后者,因为其他不太知名的机器人并不知道欺骗大人物的用户代理。即使对于 google 等,他们的 IP 也往往在狭窄的范围内,因此在 IP 上检测不应该需要编译大量列表。

      【讨论】:

        【解决方案3】:

        您可以通过 user-agent 属性进行检查。有关用户代理字符串的更多信息,请在此处查看:http://www.user-agents.org/ 使用类型“R = Robot, crawler, spider”标记记录。位这不能保证,用户代理属性可能会因几个因素而变化,这不是 100% 可靠的。

        【讨论】:

          【解决方案4】:

          如果您只对设置良好且信誉良好的机器人感兴趣,例如Google、Yahoo、MSN/Live/Bing/whatever-it-is-today、Ask 等,然后您可以使用往返 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。 66.249.71.202

          66.249.71.202 是请求 IP 地址,因此这是一个有效的 googlebot。

          【讨论】:

            猜你喜欢
            • 2012-11-18
            • 1970-01-01
            • 2010-11-23
            • 1970-01-01
            • 2021-07-17
            • 2015-05-26
            • 2018-06-05
            • 2013-06-17
            • 2017-07-18
            相关资源
            最近更新 更多