网络爬虫/数据抓取,反爬虫(更新版)

知己知彼,百战不殆

想要反网络爬虫,首先需要了解网络爬虫,基本概念不说了,这里主要对网路爬虫的特征进行阐述:

  • 大多数是高访问量;
  • 大多数是定时(可加入salt随机时间);
  • IP基本固定/不变(IP代理可跳过);

如何反爬虫

反爬虫的思路主要是区别爬虫和正常人工访问的区别,进行策反,所以发爬虫需要两步走,第一步识别,第二部策反;

识别

识别的思路主要是根据爬虫的特征,但需要考虑人工操作,大体来说,识别分为以下常见方式:

  • 统计数量,如多久内超过多少访问量;(阈值是人工比较难操作的数量)
  • (不定期,下同)验证码 > 最常见最普通,技术门槛最低;
  • 验证图形 > 比如拖拉图形的区域到指定位置;
  • 简单算术 > 比较常见,加减乘除;
  • 回答问题 > 小米/魅族等电商网上营销时常用,如孙悟空的师傅是谁;
  • 选择点击图片 > 12306常见方式;
  • 验证性链接:
  • 验证性区域 > 根据界面展示的内容展示不可见区域进行识别,不如列表界面,分页或数据界面展示不可见区域,人工操作无法进入,但一般爬虫难以识别隐藏域;
    以上主要的思路就是,电脑做起来不容易,但人工操作很容易。

策反

  • 监禁:采集一次放到全局变量中进行记录,并隔离访问(通过过滤器拦截器等限制访问),然后再放出来(提高应用容错性),再次符合判断再进行隔离访问或终身监禁,但界面展示为网络问题,等待中(为了防止破译监禁制造假象);
  • 投毒:界面展示的数据经过加工处理,展示的数据变为假数据(半真半假)(也可乱码)(投毒一般都是看起来像真数据,不仅仅是爬到真数据,也是想欺骗爬虫);
  • 断奶:如果判断是爬虫,直接拉黑;
  • 攻击(难度大,不建议):攻击方面有保守攻击和激进攻击两种,保守攻击如相应延时策略、返回大批量假数据策略、破坏数据解析规则策略等;激进攻击如肉鸡;

一般建议:

识别:低成本高收益的是普通验证码+统计阈值;
处理:投毒/监禁,投毒可适用于部分补救措施;

猜你喜欢

转载自blog.csdn.net/yygg329405/article/details/70768338
今日推荐