【问题标题】:Prevent bot from crawling certain areas of site防止机器人爬取网站的某些区域
【发布时间】:2011-01-14 14:54:20
【问题描述】:

我不太了解 SEO 和网络蜘蛛的工作原理,所以请原谅我的无知。我正在创建一个站点(使用 ASP.NET-MVC),该站点具有显示从数据库检索到的信息的区域。数据对用户来说是唯一的,因此没有真正的服务器端输出缓存正在进行。但是,由于数据可能包含用户可能不希望从搜索引擎结果中显示的内容,我想阻止任何蜘蛛访问搜索结果页面。我应该采取什么特殊措施来确保不抓取搜索结果目录?此外,蜘蛛是否会爬取动态生成的页面?是否会阻止某些目录被搜索的任何操作扰乱我的搜索引擎排名?

编辑:我应该补充一下,我正在阅读robots.txt 协议,但它依赖于网络爬虫的合作。但是,我还想阻止任何会忽略 robots.txt 文件的数据挖掘用户。

感谢您的帮助!

【问题讨论】:

    标签: asp.net-mvc seo search-engine bots web-crawler


    【解决方案1】:

    查看Robots exclusion standard。它是您放在网站上的文本文件,它告诉机器人它可以索引什么,不能索引什么。您还需要解决如果机器人不遵守 robots.txt 文件会发生什么。

    【讨论】:

    • 我刚刚更新了我的帖子,将 robots.txt 信息与您的帖子同时包含在内 :)
    【解决方案2】:

    您可以通过在服务器上实施限制来防止某些恶意客户端过多地攻击您的服务器。 “抱歉,你的IP在这几分钟内向这个服务器发出了太多的请求,请稍后再试。”但在实践中,假设您无法阻止真正的恶意用户绕过您设置的任何限制机制。

    鉴于此,这是更重要的问题:

    您对向全世界公开的信息感到满意吗? 您的用户对此感到满意吗?

    如果这些问题的答案是否定的,那么您应该确保只有授权用户才能看到敏感信息。如果信息不是特别敏感,但您不希望客户端抓取它,限制可能是一个不错的选择。无论如何,您是否有可能被爬网?如果没有,robots.txt 应该没问题。

    【讨论】:

    • 感谢您的回复。由用户决定他们决定透露什么信息(完全了解,它是公开的),如果他们想隐藏密码,也取决于用户添加密码。我希望抓取该网站,以便为该服务做广告。我只是不希望用户数据被索引。
    【解决方案3】:

    您似乎有 2 个问题。

    首先是对某些数据出现在搜索结果中的担忧。第二个关于恶意或不道德的用户获取用户相关数据。

    第一个问题将通过适当使用 robots.txt 文件来解决,因为所有大型搜索引擎都尊重这一点。

    第二个问题似乎更多地与数据隐私有关。立即浮现在脑海中的第一个问题是:如果存在人们可能不想显示的用户信息,您为什么要完全提供它?
    此类数据的隐私政策是什么?
    用户是否有能力控制提供哪些信息?
    如果信息可能敏感但对系统很重要,是否可以对其进行限制,使其仅对登录用户可用?

    【讨论】:

    • 用户可以选择显示哪些信息,如果他们选择这样做,他们可以用密码保护他们的结果(类似于 Twitter)。即使在保护区,机器人也可以没有注册帐户、登录、执行搜索和缓存结果吗?自然,没有大牌的搜索引擎会,但也许是恶意的?我会通过 ip 扫描来保护它,但只是好奇这是否可能。
    • @Skoder 如果任何登录用户可能是机器人,您需要查看行为模式并可能实施某种形式的验证码以防止进一步“浏览”,直到您确认他们在做什么。实际上,如果有人可以注册该网站并浏览数据,则无法保证它永远不会被保存/缓存/等等。
    • 这是一个公平的观点。这些数据不是超级敏感/非公开知识,但我仍然喜欢保持大量隐私(如果只是为了良好的实践)。感谢您的帮助。
    【解决方案4】:

    robots.txt 文件,如前所述。如果这还不够,那么您可以:

    • 阻止未知的用户代理 - 难以维护,机器人很容易伪造浏览器(尽管大多数合法的机器人不会)
    • 阻止未知 IP 地址 - 对公共站点无用
    • 需要登录
    • 限制用户连接 - 很难调整,您仍然会泄露信息。

    也许通过使用组合。无论哪种方式,它都是一种权衡,如果公众可以浏览它,那么机器人也可以。确保您在尝试阻止机器人时不会阻止和疏远他人。

    【讨论】:

    • 如果担心恶意机器人浏览(和缓存)网站,阻止未知用户代理不会有任何影响。任何类型的基本恶意机器人都会知道改变用户代理并冒充您想要访问的机器人。他们还将改变 IP 地址并使用多个不同的公共代理。
    【解决方案5】:

    几个选项:

    • 强制用户登录查看内容
    • 在内容前添加验证码页面
    • 在 Flash 中嵌入内容
    • 使用 JavaScript 动态加载

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2013-11-16
      • 2017-11-12
      • 2016-10-28
      • 2011-04-20
      • 1970-01-01
      相关资源
      最近更新 更多