网络编程
位置:首页>> 网络编程>> Asp编程>> 网站防止采集方法全攻略(2)

网站防止采集方法全攻略(2)

  发布时间:2007-09-05 19:57:00 

标签:

1、用不同的模板
对于用程序的网站来说,不大可行,一个网站的模板最多也就几套吧。
2、使用robots禁止访问网页目录
这个方法可以有效的防止采集,不过将搜索引擎也封掉了,对于靠搜索引擎吃饭的站长们来说,得不偿失。
一个例子,Disallow 后面就是禁止访问的目录:
3、使用HTTP_REFERER禁止采集,发现来自非本站连接就禁止察看页面,就像前一段落伍im286.net防DDOS那个禁止调用一样。
这个方法可以比较有效的防止采集,不过也一样把搜索引擎封掉了,对于靠搜索引擎吃饭的站长们来说,得不偿失。
对高手无效,因为HTTP_REFERER可以伪造。但对一般使用采集的人来说,已经足够应付了。
4、使用HTTP_REFERER伪造内容
这个方法可以比较有效的防止采集,不过对于搜索引擎来说,查到的东西跟你伪造的东西一样的,可能会影响收录。(如有不对,请高手指出)
同上,对于高手无效。
5、使用java加密内容。
这个可能会比较有效,但是我对java一窍不通,也就不清楚如何入手了。
但我想,既然你这样使得别人采集到乱码,搜索引擎有可能也是收录到乱码的(我不清楚搜索引擎怎么工作,不过我猜测他们是察看网页源代码的。),也就影响收录。
6、使用java加密网址
同上,有可能让搜索引擎无法搜索到你的网页。
7、生成pdf文件、生成图片
这个方法可以比较有效的防止采集,不过照样让搜索引擎望而却止。
8、加上自己的版权信息
这个方法最大的好处就是不影响搜索引擎,效果马马虎虎,一般上可以让采集者采集到带有自己版权的稿件内容。但是对于可以过滤广告的采集程序来说,不大有效。
以下是作者给俺的PM:
你的版权是不是加了你的网站和网址?
只要把网址和网站名替换成他的就可以了啊.这样还让他有了版权功能呢.
反正防采真是头疼....
有点麻烦,我的思路是将网站名称分成一个一个字来显示,他不可能将每个字都替换掉吧?不过要这样我就没办法了。$rand_color*是随机颜色,可以自己控制的,如果是 * 页的话,还配合HTTP_REFERER来搞随机,这样子随机性就更大了。一般上,尽量制造难度就是了。模板也可以制造随机性,几个相似的模板轮流来弄,这样子让人采集的难度更大。
不过说实话,要使他们真要搞,那是没办法的事,不过至少要花他们很多的时间去研究。在此之前,他们可能没耐性转向别的站了。
另外,最好不要让人知道你使用随机函数。一般人只是稍微看一下网页代码,就开始采集了。
下午无聊写着完,写完后自己仔细看了看防止采集还是有一定的效果的,哈哈,要的拿去用吧!

<% 
Dim AppealNum,AppealCount 
AppealNum=10 ’同一IP60秒内请求限制10次 
AppealCount=Request.Cookies("AppealCount") 
If AppealCount="" Then 
response.Cookies("AppealCount")=1 
AppealCount=1 
response.cookies("AppealCount").expires=dateadd("s",60,now()) 
Else 
response.Cookies("AppealCount")=AppealCount+1 
response.cookies("AppealCount").expires=dateadd("s",60,now()) 
End If 
if int(AppealCount)>int(AppealNum) then 
response.write "歇一会儿吧!整天采集你烦不烦啊!" 
response.end 
End If 
%> 


4 这几天上网,竟然也现我的整站被人家全部采集去了。晕倒,几年的资料就这样便宜人家。
还好,人家是个懒虫,栏目都不分,鬼才会去看。
这样才想起怎样防止采集的方法。
注意,只是讨论可行性,还没有提供解决方案。
采集与搜索引擎的机器人不同。采集需要对网页进行分析,以找到规则,分别对标题和内容进行读取并记录到数据库中。
如果我们能够把网页做成没有规则,采集也就无从入手了。
说到规则,我就想趣了空格。
空格这东西,在HTM的<>中,并不产生作用,也就是说,一个空格的位置,你多加几个也是没关系的。象<table>你可以写成< table>,<table >,< table >。都可以,所以,如果在网页里面,特别是采集程序重点分析的位置,我们利用程序,在这些位置加些空格,采集也就难以下手了,就算采到了,也就几篇而已,影响不大。
我准备这样做,象原来在模板中的<table>,我会改成<{$space1$}table{$space2$}>,在这里,{$space1$}和{$space2$}是自定义标签(也可以融合到程序中),然后在程序中使用随机数来决定这两个标签用多少个空格来代替。
呵呵,人家现在想用<table>来做为特征采集是完全做不到的了。但对于我的网页,显示上一点影响也没有,对于搜索引擎的机器人也一点影响没有。
我想这应该是最合适的方法。
希望做过采集或改过采集的讨论一下。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com