知己知彼,百战不殆
- 大多数是高访问量;
- 大多数是定时(可加入salt随机时间);
- IP基本固定/不变(IP代理可跳过);
如何反爬虫
反爬虫 的思路主要是区别爬虫和正常人工访问的区别,进行策反,所以发爬虫需要两步走,第一步识别,第二部策反;
一、识别
识别的思路主要是根据爬虫的特征,但需要考虑人工操作,大体来说,识别分为以下常见方式:
- 统计数量,如多久内超过多少访问量;(阈值是人工比较难操作的数量)
(不定期,下同)验证码 > 最常见最普通,技术门槛最低; - 验证图形 > 比如拖拉图形的区域到指定位置;
- 简单算术 > 比较常见,加减乘除;
- 回答问题 > 小米/魅族等电商网上营销时常用,如孙悟空的师傅是谁;
- 选择点击图片 > 12306常见方式;
- 验证性链接:
- 验证性区域 > 根据界面展示的内容展示不可见区域进行识别,不如列表界面,分页或数据界面展示不可见区域,人工操作无法进入,但一般爬虫难以识别隐藏域;
以上主要的思路就是,电脑做起来不容易,但人工操作很容易。
二、策反
- 监禁:采集一次放到全局变量中进行记录,并隔离访问(通过过滤器拦截器等限制访问),然后再放出来(提高应用容错性),再次符合判断再进行隔离访问或终身监禁,但界面展示为网络问题,等待中(为了防止破译监禁制造假象);
- 投毒:界面展示的数据经过加工处理,展示的数据变为假数据(半真半假)(也可乱码)(投毒一般都是看起来像真数据,不仅仅是爬到真数据,也是想欺骗爬虫);
- 断奶:如果判断是爬虫,直接拉黑;
- 攻击(难度大,不建议):攻击方面有保守攻击和激进攻击两种,保守攻击如相应延时策略、返回大批量假数据策略、破坏数据解析规则策略等;激进攻击如肉鸡;
一般建议:
识别:低成本高收益的是普通验证码+统计阈值;
处理:投毒/监禁,投毒可适用于部分补救措施;
网友评论