对于很多站长特别是原创类网站站长来说,信息被其他网站抓取是一件很苦恼的事情,很多人研究了很多方法,要达到不能让其他网站批量抓取却不影响搜索引擎的收录,其中自我觉得有效的包括文章内容使用16进制加密(实际上这个其实很容易破解的)等,结果都不能有效的达到目的。那有没有办法既能被搜索引擎收录又能有效的防止其他网站的抓取呢,方法是有的,并且很简单就能实现。废话少说,进入主题。
“方法一”、能有效防止通用的一些抓取程序,搜索引擎正常收录(但不能彻底防止抓取)。
还是以我网站来举例子,我网站是中国学网,大家可以进入列表页,如http://www.xue163.com/zhanzhang/yz/yh/,看看下面的列表页链接,第一页是:http://www.xue163.com/zhanzhang/yz/yh/1247_1_2E8C.htm(如图):
第二页是:http://www.xue163.com/zhanzhang/yz/yh/1247_2_6EAA.htm (如图)
其他页同理,看到不一样的地方了吗?http://www.xue163.com/zhanzhang/yz/yh/1247_1_是相同的,后面还带有一块却是不同的。下面我分析下原理(只针对一些通用抓取程序):
1、 对于通用的抓取程序来说,会从两个方面来抓取,第一是列表页,第二是终极页,所以我们就必须让他不能方便的得到对应的地址。
2、 列表页是怎么抓取的呢,如上面地址,如果我第一页是:http://www.xue163.com/zhanzhang/yz/yh/1247_1.htm第二页是http://www.xue163.com/zhanzhang/yz/yh/1247_2.htm。其他页以此类推,那么抓取程序就很简单了,直接变换对应的页数,如第五页就应该是http://www.xue163.com/zhanzhang/yz/yh/1247_5.htm,而我这里在后面还带了对应的参数,并且这个参数是每个栏目/每页都不一样,通用的抓取程序就不能通过通用的规则来获得我的列表页面地址。而后面的参数怎么来的,怎么有效的防止别人找到你的规律呢,其实很简单,使用MD5加密,在分页的时候本来是这样的:,将其改为,这里的classid是对应文章类别ID,md5中的xue163.com是我随便设定的一个变量,这个变量可以设置为任意字母,为了每个类别、每页地址都不同,后面加上了两个变量,一个是类别,一个是当前页数,将三个变量加在一起进行MD5加密,因为MD5加密太长了,所以使用LEFT来取得前面几位,效果一样的。当然,记得生成页面的时候对应生成地址按照上面规则来生成页面。这样简单的搞搞,就可以防止很多程序的抓取了。
3、 列表页弄完了,还得让终极页的防止抓取,同样可以使用第二条的方法对终极页进行有效的加密,使得通用抓取程序不能获得下一条记录的地址。当然还有一个办法就是生成页面的时候按照日期位目录来存放页面,同样能防止通通用抓取程序抓取终极页,如我的:http://www.xue163.com/html/2010510/5634498/。
以上方法只是很简单的防止通用程序抓取的,对于厉害点自己能写抓取程序的人来说就不行了,因为可以通过当前页面读取下一页的地址,同样达到抓取的目的。那是不是没有办法了?办法是有的,请看方法二。
方法二、彻底防止抓取
大家看完”方法一”后,应该知道要杜绝抓取就不能让别人通过程序来找到你的列表地址,终极页防止抓取按照”方法一”中说的就行了,那列表页怎么办,如果不在页面上加上“下一页”地址,搜索引擎又抓取不到了,如果加上“下一页”地址,写抓取程序的人又可以读取我下一页地址,达到抓取的目的。下面,我来介绍对应的方法:
首先、所有列表页按照”方法一”生成对应的列表页面
其次、对应的链接地址在列表页面上是找不到的,通过JAVASCRIPT来POST提交给一个动态页处理如:page.asp(最好能提交两个参数,一个是当前的classid,一个是对应的页面数),而page.asp获得提交过来的参数后,按照”方法一”中所讲的得到真实列表地址,并转到对应的页面。这样做的目的就是让写抓取程序的人不能从当前页面得到下一页地址,但是有个问题搜索引擎也同样得不到下一页地址了,就不能收录更多页面了。其实有个变通的方法,将所有信息按照”方法一”生成列表页,这些列表页是不带“上一页”、“下一页”等分页地址的,就是纯信息列表。而在终极页上,不同的终极页通过黑链的形式(也可以通过明链)带几个不同的列表页地址。这样做的唯一目的是给搜索引擎入口,本来正常情况下搜索引擎是这样获得入口:
主页 》》 列表页 》》 终极页
现在换成了:
主页 》》终极页 》》 列表页 》》更多的终极页 》》更多的列表页 》》更多的终极页
根据实际操作,这个方法比正常列表页更有效的被搜索引擎抓取。
其实原理很简单,就是怎么不给抓取程序得到有效的地址,让抓取程序不能批量的抓取到对应列表信息。方法二就是复杂点,但是经过测试,不但提升了搜索引擎的收入,更有效的防止了别人抓取。可能我写的不太明白,欢迎加站长QQ:20127430讨论欢迎转载本文作者:学网