防采集系统的设计

1 sec read

网络上越来越多的站长在使用采集系统进行网站采集。如何应对这样的采集成为一个很棘手的问题。先前写过一篇怎样防止网站被采集的的文章,但是中间提到的方法感觉不是非常的适用。

正常的搜索引擎抓取页面可以使用robots.txt来进行屏蔽,比如万恶的雅虎,流量和不带过来,确是爬的最勤快的,大量的占用服务器资源。

对于一个原创内容丰富,URL结构合理易于爬取的网站来说,简直就是各种爬虫的盘中大餐,很多网站的访问流量构成当中,爬虫带来的流量要远远超过真实用户访问流量,甚至爬虫流量要高出真实流量一个数量级。

防采集主要防止的是那些除搜索引擎外的抓取行为,即除搜索引擎外的非人为访问。主要原因有:

  1. 影响服务器的性能,消耗服务器流量。
  2. 影响网站数据的统计,比如流量统计。
  3. 自己辛苦整理的资料不希望被其他人盗用。

防止采集最大的难点是如何才能精确打击,即不影响搜索引擎采集的情况下,把那些“小偷”屏蔽掉。通常采用以下两种方式进行组合过滤

  • 过滤规则,主要是通过用户IP地址,User-Agent进行屏蔽。
  • 频度控制,主要是限制时间和次数,如一定时间内的请求量不能超过一定的阀值。

接下来就是整体系统的设计了:

  • 总体设计:旁路统计、规则封禁
  • 访问控制服务器:维护规则库、按规则进行统计、为系统生成封禁列表
  • 系统服务端:转发请求、同步封禁列表、实施访问控制。
打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

C语言学习:size_t

在学习C语言的时候,遇到了一个新的数据类型size_t,截止目前也没有完全理清这个类似的具体场景及出现的原因。
44 sec read

C语言学习:main()函数的正确写法

C语言虽然是一门古老的语言,但是其标准一直在完善,所以很多以前支持的语法在到当前已经不能在使用了。 C语言的版
41 sec read

Scipy数学函数的Scala实现

最近在推进项目的时候,遇到需要将线下的Python代码转化成线上的集群代码,由于机器代码环境是Scala,所以
4 min read

2 Replies to “防采集系统的设计”

    1. 建议以指数的形式产生封锁的时间,产生值为 2^已封锁次数*第一次封锁时间

发表评论

电子邮件地址不会被公开。 必填项已用*标注