如何让来自扫描asp.net网站的已知网络爬虫和块垃圾邮件和有害的机器人(how to allow

2019-07-29 15:21发布

如何配置我的网站,以允许从众所周知的机器人像谷歌,必应,雅虎,Alexa的等爬行和停止等有害垃圾邮件发送者,机器人

我应该阻止特定IP? 请讨论任何利弊任何在web.config中或IIS做?

我能做到这一点的服务器级的,如果我有具有root访问权限的VPS?

谢谢。

Answer 1:

我建议你看看我张贴了类似的问题的答案: 如何识别网络爬虫?

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的请求的数量,并可能导致您暂时抓取你的网站不允许谷歌。 在这种情况下,你又多了一个选择,这是验证机器人的身份。 大多数主要的爬虫(你会希望通过抓取)有一种方式,你可以找出自己的机器人,这里是谷歌的建议,核查他们的机器人: http://googlewebmastercentral.blogspot.com/2006/09/how-to -verify-googlebot.html

该假冒的又一重大BOT和验证失败的任何机器人可以通过IP被封锁。 这或许应该让你更接近防止坏机器人的99.99%抓取您的网站。



Answer 2:

通过IP阻塞可能是有用的,但我使用的方法是通过用户代理拦截,这样你可以捕获使用你不想要的,尤其是现场采集卡应用许多不同的IP地址。 因为你需要专注于那些影响你,我也不会为我们的名单。 为我所用,我们已经确定了130多个应用程序不在Web浏览器,而不是搜索引擎,我们不希望访问我们的网站。 但是你可以对用户代理的web搜索网站抓取开始。



Answer 3:

这样做的最简单方法是使用robots.txt文件在网站的根目录下。

robots.txt文件的语法如下:

User-agent: *
Disallow: /

这有效地禁止其尊重来自定义页面的robots.txt约定所有的机器人。

要记住,虽然事情是不是所有的网络抓取工具遵守这个约定

它可以是从防止机器人击中服务器的时间疯狂一些非常有用的,它也可以防止一些机器人,你希望在所有没有触及该网站是有用的,但不幸的是没有万灵药。 如已经提到的,有没有这样的动物,垃圾邮件是一个常数头痛。

欲了解更多信息,看看http://www.robotstxt.org/



Answer 4:

我喜欢使用.htaccess文件,一旦你有一个列表的已知漫游这些行添加到文件底部。

的RewriteCond%{HTTP_REFERER} ^ HTTP(S)://([^] +)suspectIP。 $ [NC,OR]

的RewriteCond%{HTTP_REFERER} ^ HTTP(S)://([^。] +。)suspectURL.com。 $ [NC]

重写规则(*) - [F]



文章来源: how to allow known web crawlers and block spammers and harmful robots from scanning asp.net website