很多防采集方法在施行的时候需要考虑是否影响搜索引擎对网站的抓取,所以先来分析下一般采集器和搜索引擎爬虫采集有何不同。

相同点:
a. 两者都需要直接抓取到网页源码才能有效工作,
b. 两者单位时间内会多次大量抓取被访问的网站内容;
c. 宏观上来讲两者IP都会变动;
d. 两者多没耐心的去破解你对网页的一些加密(验证),好比网页内容通过js文件加密,好比需要输入验证码才能浏览内容,好比需要登录才能访问内容等。

不同点:
搜索引擎爬虫先忽略整个网页源码脚本和样式以及html标签代码,然后对剩下的文字部门进行切词语法句法分析等一系列的复杂处理。而采集器一般是通过 html标签特点来抓取需要的数据,在制作采集规则时需要填写目标内容的开始标志何结束标志,这样就定位了所需要的内容;或者采用对特定网页制作特定的正 则表达式,来筛选出需要的内容。不管是利用开始结束标志仍是正则表达式,都会涉及到html标签(网页结构分析)。

然后再来提出一些防采集方法
1、限制IP地址单位时间的访问次数
分析:没有哪个凡人一秒钟内能访问相同网站5次,除非是程序访问,而有这种喜好的,就剩下搜索引擎爬虫和讨厌的采集器了。
弊端:一刀切,这同样会阻止搜索引擎对网站的收录
合用网站:不太依赖搜索引擎的网站
采集器会怎么做:减少单位时间的访问次数,减低采集效率

2、屏蔽ip
分析:通过后台计数器,记实来访者ip和访问频率,人为分析来访记实,屏蔽可疑Ip。
弊端:好像没什么弊端,就是站长忙了点
合用网站:所有网站,且站长能够知道哪些是google或者百度的机器人
采集器会怎么做:打游击战呗!利用ip代办代理采集一次换一次,不外会降低采集器的效率和网速(用代办代理嘛)。

3、利用js加密网页内容
Note:这个方法我没接触过,只是从别处看来
分析:不用分析了,搜索引擎爬虫和采集器通杀
合用网站:极度讨厌搜索引擎和采集器的网站
采集器会这么做:你那么牛,都豁出去了,他就不来采你了

4、网页里躲藏网站版权或者一些随机垃圾文字,这些文字风格写在css文件中
分析:固然不能防止采集,但是会让采集后的内容布满了你网站的版权说明或者一些垃圾文字,由于一般采集器不会同时采集你的css文件,那些文字没了风格,就显示出来了。
合用网站:所有网站
采集器会怎么做:对于版权文字,好办,替代掉。对于随机的垃圾文字,没办法,勤快点了。

5、用户登录才能访问网站内容
分析:搜索引擎爬虫不会对每个这样类型的网站设计登录程序。听说采集器可以针对某个网站设计模拟用户登录提交表单行为。
合用网站:极度讨厌搜索引擎,且想阻止大部门采集器的网站
采集器会怎么做:制作拟用户登录提交表单行为的模块

6、利用脚本语言做分页(躲藏分页)
分析:仍是那句,搜索引擎爬虫不会针对各种网站的躲藏分页进行分析,这影响搜索引擎对其收录。但是,采集者在编写采集规则时,要分析目标网页代码,懂点脚本知识的人,就会知道分页的真实链接地址。
合用网站:对搜索引擎依靠度不高的网站,还有,采集你的人不懂脚本知识
采集器会怎么做:应该说采集者会怎么做,他反正都要分析你的网页代码,顺便分析你的分页脚本,花不了多少额外时间。

7、防盗链措施
分析:asp和php可以通过读取哀求的HTTP_REFERER属性,来判定该哀求是否来自本网站,从而来限制采集器,同样也限制了搜索引擎爬虫,严峻影响搜索引擎对网站部门防盗链内容的收录。
合用网站:不太考虑搜索引擎收录的网站
采集器会怎么做:伪装HTTP_REFERER嘛,不难。

8、全flash、图片或者pdf来呈现网站内容
分析:对搜索引擎爬虫和采集器支持性不好,这个良多懂点seo的人都知道
合用网站:媒体设计类并且不在意搜索引擎收录的网站
采集器会怎么做:不采了,走人

9、网站随机采用不同模版
分析:由于采集器是根据网页结构来定位所需要的内容,一旦先后两次模版更换,采集规则就失效,不错。而且这样对搜索引擎爬虫没影响。
合用网站:动态网站,并且不考虑用户体验。
采集器会怎么做:一个网站模版不可能多于10个吧,每个模版弄一个规则就行了,不同模版采用不同采集规则。假如多于10个模版了,既然目标网站都那么费劲的更换模版,玉成他,撤。

10、采用动态不规则的html标签
分析:这个比较反常。考虑到html标签内含空格和不含空格效果是一样的,所以< div >和< div >对于页面显示效果一样,但是作为采集器的标记就是两个不同标记了。假如次页面的html标签内空格数随机,那么
采集规则就失效了。但是,这对搜索引擎爬虫没多大影响。
适合网站:所有动态且不想遵守网页设计规范的网站。
采集器会怎么做:仍是有对策的,现在html cleaner仍是良多的,先清理了html标签,然后再写采集规则;应该用采集规则前先清理html标签,仍是能够拿到所需数据。

采集就是使用程序通过自动化操纵复制数据。

首先说明,只要是能让浏览器访问的,就没有不能采集的。

但是可以通过一定的手段让采集变得非常麻烦,进而在大量数据的情况下延迟采集完成时间,加大采集难度。

一般的情况略过不说,几种情况比较特别的:

1、验证来路,cookie,session这些,好比PHP可以用fsockopen自定义HTTP Header,基本上这些方法没什么效果。

2、限速,限制某段时间内打开页面数目。这个只是推迟了下,大部门时间效果一般。好比某站限制一分钟之内只能打开30个网页,页面大小均匀30K,则用迅雷批量下载就OK了,设置限速为2K,一觉醒来什么都好了。这个方法效果也基本没有。

3、比较特别的方法,设置一个数目级的阀值,达到这样数目后,必需验证方能继承,好比打开10个页面需要输入验证码,这个时候只需要保证验证码不可识别,分配一个session,以后的浏览过程顶用session保证用户正当性,这样不影响后续访问,同时可以有效防止采集。

4、第三条对蜘蛛是致命的,此时可通过手机蜘蛛IP段,放行,其它的按照严格规则来。

5、3+4真是无敌的吗?远非可以安枕无忧,好比斯站有10万个页面,则设置100个代办代理,在阀值前轮回使用代办代理,这样实际上绕过了3的限制。

6、还有别的办法吗?不能,由于你的网站能用浏览器打开。

7、另外的方案,开发专有浏览器,专有数据加密。

8、社会工程学来说,进行知识产权保护,让采集的风险弘远于本钱,条件是你的数据值得你付出这么多来折腾。

从另外的角度来说,数据并非最重要的,就像钱不如人重要。回想百多年前,你家大清帝国装备一流,也仍是败的乌烟瘴气。

 

总结:
一旦要同时搜索引擎爬虫和采集器,这是很让人无奈的事情,由于搜索引擎第一步就是采集目标网页内容,这跟采集器原理一样,所以良多防止采集的方法同时也阻 碍了搜索引擎对网站的收录,无奈,是吧?以上10条建议固然不能百分之百防采集,但是几种方法一起合用已经拒绝了一大部门采集器了。