网络爬虫/数据抓取,反爬虫(更新版)
2017-04-25 23:03
260 查看
知己知彼,百战不殆
想要反网络爬虫,首先需要了解网络爬虫,基本概念不说了,这里主要对网路爬虫的特征进行阐述:大多数是高访问量;
大多数是定时(可加入salt随机时间);
IP基本固定/不变(IP代理可跳过);
如何反爬虫
反爬虫的思路主要是区别爬虫和正常人工访问的区别,进行策反,所以发爬虫需要两步走,第一步识别,第二部策反;识别
识别的思路主要是根据爬虫的特征,但需要考虑人工操作,大体来说,识别分为以下常见方式:统计数量,如多久内超过多少访问量;(阈值是人工比较难操作的数量)
(不定期,下同)验证码 > 最常见最普通,技术门槛最低;
验证图形 > 比如拖拉图形的区域到指定位置;
简单算术 > 比较常见,加减乘除;
回答问题 > 小米/魅族等电商网上营销时常用,如孙悟空的师傅是谁;
选择点击图片 > 12306常见方式;
验证性链接:
验证性区域 > 根据界面展示的内容展示不可见区域进行识别,不如列表界面,分页或数据界面展示不可见区域,人工操作无法进入,但一般爬虫难以识别隐藏域;
以上主要的思路就是,电脑做起来不容易,但人工操作很容易。
策反
监禁:采集一次放到全局变量中进行记录,并隔离访问(通过过滤器拦截器等限制访问),然后再放出来(提高应用容错性),再次符合判断再进行隔离访问或终身监禁,但界面展示为网络问题,等待中(为了防止破译监禁制造假象);投毒:界面展示的数据经过加工处理,展示的数据变为假数据(半真半假)(也可乱码)(投毒一般都是看起来像真数据,不仅仅是爬到真数据,也是想欺骗爬虫);
断奶:如果判断是爬虫,直接拉黑;
攻击(难度大,不建议):攻击方面有保守攻击和激进攻击两种,保守攻击如相应延时策略、返回大批量假数据策略、破坏数据解析规则策略等;激进攻击如肉鸡;
一般建议:
识别:低成本高收益的是普通验证码+统计阈值;处理:投毒/监禁,投毒可适用于部分补救措施;
相关文章推荐
- 爬虫如何抓取到asp.net中-dopostback获取新页面的数据
- hiernate抓取策略与批量更新、批量取数据
- 新浪微博数据挖掘食谱之十五: 爬虫篇 (抓取用户的朋友)
- chencang-----是使用淘宝API获取数据好,还是利用爬虫去抓取数据好呢
- Python爬虫框架Scrapy实战之抓取户外数据
- 爬虫如何抓取到Asp.Net中__doPostBack获取新页面的数据
- nodejs爬虫抓取数据乱码问题总结
- C# 爬虫 、 网页数据抓取 随记
- java利用爬虫技术抓取(省、市(区号\邮编)、县)数据
- Node.js爬虫抓取数据 -- HTML 实体编码处理办法
- 07-爬虫的多线程调度 | 01.数据抓取 | Python
- Python爬虫处理抓取数据中文乱码问题
- 使用工具时正常,但在抓取过程中很久都没有更新数据的问题分析
- java爬虫抓取天猫商品的价格数据
- java实现网络爬虫--抓取网站数据
- C#抓取网页数据、分析(例如抓取天气预报)-091016有更新091110update again
- 网络爬虫中高效率的URL索引 更新支持千万条数据
- 基于webmagic的java网页爬虫,抓取网页指定节点,然后使用dom4j分析xml数据
- 分布式爬虫:使用Scrapy抓取数据
- nodejs爬虫抓取数据之编码问题