如何允许已知的网络抓取工具阻止垃圾邮件发送者和有害机器人扫描asp.net网站

v s*_*v s 5 asp.net block web-crawler

如何配置我的网站以允许从谷歌,bing,雅虎,alexa等众所周知的机器人爬行,并阻止其他有害的垃圾邮件发送者,机器人

我应该阻止特定的IP吗?请讨论任何优点,缺点在web.config或IIS中要做什么?

我可以在服务器范围内进行吗?如果我有root访问权限的vps?

谢谢.

Kir*_*ril 7

我建议您看看我发布的类似问题的答案:如何识别网络爬虫?

Robots.txt
robots.txt对于礼貌机器人非常有用,但垃圾邮件发送者通常不礼貌,因此他们倾向于忽略robots.txt; 如果你有robots.txt这很好,因为它可以帮助有礼貌的机器人.但是,请注意不要阻止错误的路径,因为它可以阻止好机器人抓取您实际希望他们抓取的内容.

用户代理
阻止用户代理也不是万无一失的,因为垃圾邮件发送者经常冒充浏览器和其他流行的用户代理(例如谷歌机器人).事实上,欺骗用户代理是垃圾邮件发送者可以做的最容易的事情之一.

机器人陷阱
这可能是保护自己免受机器人攻击并且无法正确识别用户代理的机器人的最佳方法.至少有两种类型的陷阱:

  • 该robots.txt的陷阱(其中只有工作,如果机器人读取的robots.txt):奉献在robots.txt的禁地目录,并设置您的服务器来阻止它试图访问该目录中的任何实体的IP地址.
  • 在您的网页中创建"隐藏"链接,这些链接也会导致禁止目录以及任何抓取这些链接并且不遵守您的robots.txt的机器人将进入陷阱并阻止IP.

隐藏链接是人不可见的链接,例如没有文本的锚标记:<a href="http://www.mysite.com/path/to/bot/trap"></a>.或者,您可以在锚标记中包含文本,但是您可以使字体非常小并更改文本颜色以匹配背景颜色,以便人类无法看到链接.隐藏的链接陷阱可以捕获任何非人类机器人,因此我建议您将它与robots.txt陷阱结合使用,以便您只捕获坏机器人.

验证机器人
上述步骤可能会帮你摆脱垃圾邮件的99.9%,但有可能是坏的机器人谁冒充流行的机器人(例如Googlebot)的少数和您的robots.txt遵守; 这些机器人可能会耗尽您为Googlebot分配的请求数量,并可能导致您暂时不允许Google抓取您的网站.在这种情况下,您还有一个选项,那就是验证机器人的身份.大多数主要的抓取工具(您希望被抓取)有一种方法可以识别他们的机器人,这是Google建议验证他们的机器人:http://googlewebmastercentral.blogspot.com/2006/09/how-to -verify-googlebot.html

任何模仿另一个主要僵尸程序并且验证失败的机器人都可能被IP阻止.这应该可以让你更接近阻止99.99%的坏机器人抓取您的网站.