网站页面防采集的一些方法

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

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

3、利用js加密网页内容
Note:将连接使用js动态变换,加密一些配置信息。在使用eval()函数解密。

+++++++++++++++++++++++++++++++++++++++++++++++

<script> 
a=62; 
function encode() { 
var code = document.getElementById('code').value; 
code = code.replace(/[\r\n]+/g, ''); 
code = code.replace(/'/g, "\\'"); 
var tmp = code.match(/\b(\w+)\b/g); 
tmp.sort(); 
var dict = []; 
var i, t = ''; 
for(var i=0; i<tmp.length; i++) { 
if(tmp[i] != t) dict.push(t = tmp[i]); 

var len = dict.length; 
var ch; 
for(i=0; i<len; i++) { 
ch = num(i); 
code = code.replace(new RegExp('\\b'+dict[i]+'\\b','g'), ch); 
if(ch == dict[i]) dict[i] = ''; 

document.getElementById('code').value = "eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}(" 
+ "'"+code+"',"+a+","+len+",'"+ dict.join('|')+"'.split('|'),0,{}))"; 


function num(c) { 
return(c<a?'':num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36)); 


function run() { 
eval(document.getElementById('code').value); 


function decode() { 
var code = document.getElementById('code').value; 
code = code.replace(/^eval/, ''); 
document.getElementById('code').value = eval(code); 

</script> 


<textarea id=code cols=80 rows=20> 

</textarea><br> 
<input type=button onclick=encode() value=编码> 
<input type=button onclick=run() value=执行> 
<input type=button onclick=decode() value=解码>

+++++++++++++++++++++++++++++++++++++++++++++++
分析:不用分析了,搜索引擎爬虫和采集器通杀
适用网站:极度讨厌搜索引擎和采集器的网站
采集器会这么做:你那么牛,都豁出去了,他就不来采你了

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

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

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

7、防盗链措施(只允许通过本站页面连接查看,如:Request.ServerVariables(“HTTP_REFERER“) )
分析:ASP/' target='_blank' class='infotextkey'>asp和php可以通过读取请求的HTTP_REFERER属性,来判断该请求是否来自本网站,从而来限制采集器,同样也限制了搜索引擎爬虫,严重影响搜索引擎对网站部分防盗链内容的收录。
适用网站:不太考虑搜索引擎收录的网站
采集器会怎么做:伪装HTTP_REFERER嘛,不难。

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

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

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


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

会编程的伤不起,杜绝不可能,收录、防采 之间需要权衡下。

原文地址:https://www.cnblogs.com/zhongbin/p/3131881.html