网络上越来越多的站长在使用采集系统进行网站采集。如何应对这样的采集成为一个很棘手的问题。先前写过一篇怎样防止网站被采集的的文章,但是中间提到的方法感觉不是非常的适用。
正常的搜索引擎抓取页面可以使用robots.txt来进行屏蔽,比如万恶的雅虎,流量和不带过来,确是爬的最勤快的,大量的占用服务器资源。
对于一个原创内容丰富,URL结构合理易于爬取的网站来说,简直就是各种爬虫的盘中大餐,很多网站的访问流量构成当中,爬虫带来的流量要远远超过真实用户访问流量,甚至爬虫流量要高出真实流量一个数量级。
防采集主要防止的是那些除搜索引擎外的抓取行为,即除搜索引擎外的非人为访问。主要原因有:
- 影响服务器的性能,消耗服务器流量。
- 影响网站数据的统计,比如流量统计。
- 自己辛苦整理的资料不希望被其他人盗用。
防止采集最大的难点是如何才能精确打击,即不影响搜索引擎采集的情况下,把那些“小偷”屏蔽掉。通常采用以下两种方式进行组合过滤
- 过滤规则,主要是通过用户IP地址,User-Agent进行屏蔽。
- 频度控制,主要是限制时间和次数,如一定时间内的请求量不能超过一定的阀值。
接下来就是整体系统的设计了:
- 总体设计:旁路统计、规则封禁
- 访问控制服务器:维护规则库、按规则进行统计、为系统生成封禁列表
- 系统服务端:转发请求、同步封禁列表、实施访问控制。
微信支付

支付宝

如果一旦ip被锁定,一般要多长时间
建议以指数的形式产生封锁的时间,产生值为 2^已封锁次数*第一次封锁时间