防止网站被采集的理论分析以及十条方法对策第1/2页
来源:asp之家 发布时间:2011-03-29 10:38:00
相同点:
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、利用脚本语言做分页(隐藏分页)
分析:还是那句,搜索引擎爬虫不会针对各种网站的隐藏分页进行分析,这影响搜索引擎对其收录。但是,采集者在编写采集规则时,要分析目标网页代码,懂点脚本知识的人,就会知道分页的真实链接地址。
适用网站:对搜索引擎依赖度不高的网站,还有,采集你的人不懂脚本知识
采集器会怎么做:应该说采集者会怎么做,他反正都要分析你的网页代码,顺便分析你的分页脚本,花不了多少额外时间。


猜你喜欢
- 设计是一个输入-输出的过程,因为首先有用户的需求,客户的项目才有设计的产生,设计是带有目的性和市场行为的,当然也有一部分的创造性设计,仅仅为
- 因为虽然名字很陌生,但我们每天都在用,每天都有无数潜在的坑被埋下。包括我本人也犯过同样的错误,当时代码已经合并并发布了,当我意识到出了什么问
- 在Server和Client通讯中,由于网络等原因很可能会发生数据丢包的现象。如果数据缺失,服务端接收的信息不完整,就会造成混乱。我们需要在
- 前言:最近某个时间开始,特别留意了一下Web标准中柱状图,也就是英文中的bar graph的实现。虽然实现方法各异,效果不尽相同,但是总体来
- 这次哀悼,网页设计方面除了应用CSS灰度配色和滤镜,还用到正计时代码,就象汶川大地震已过去了多少天。下面这段代码,是从网易页面提取出来的,具
- 步骤一:申请百度地图密钥;JavaScript API v1.4以及以前的版本无序申请秘钥(ak),自v1.5版本开始需要先申请秘钥(ak)
- 用命令创建Django项目1.将磁盘切换为D盘2.在D盘的路径下创建Django项目创建项目应用3.最后显示新建index文件夹启动项目1.
- 这两天在做小程序调取地图的时候遇到一个问题,如果用户第一次拒绝了位置权限请求。那么就不会再次唤起授权弹出。需要我们引导用户去开启。具体做法如
- 问题描述: 有2个数组如下a = [3,3,3,4,4,4,5,6,7]b = [3,3,4,4]第1题:从数组a中删除所有在数组b中出现过
- startswith()方法Python startswith() 方法用于检查字符串是否是以指定子字符串开头如果是则返回 True,否则返
- web 调试工具介绍和开发环境搭建python与selenium开发环境搭建:一、下载python软件:https://www.python
- 目录原生 JS怎么发送一个 get 请求怎么发送一个 post 请求发送一个带有参数的 get 请求发送一个带有参数的 post 请求jQu
- 一 ,做好安装前的清理工作rpm -pa | grep mysql 或者 rpm -qa | grep -i mysqlyum remove
- 本文实现用python编写一个带界面的计算器小程序,当然这个计算器功能很简单,只能进行一些简单的数学运算,很适合初学者,希望能给大家带来一些
- 特点:1.图片预载入,载入后再显示。意图一次呈现,不会让一块一块下载破坏你的页面,绝佳的用户体验,颠覆传统的浏览器呈现图片的处理方式(需要后
- Item Pipeline简介Item管道的主要责任是负责处理有蜘蛛从网页中抽取的Item,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛
- #!/usr/bin/python#coding=gbkclass User: def __init__
- python类私有属性和公共属性对于python而言,类的属性的可见度只有两种,public和private。类的私有属性便是在前面加上&a
- 原理:将数据的二进制形式写入图像红色通道数据二进制的低位只支持png格式的输出写入数据go run shadow.go -in="
- 什么是模块?请思考与代码库类似的模块。模块是包含一组函数的文件,希望在应用程序中引用。创建模块如需创建模块,只需将所需代码保存在文件扩展名为