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

知己知彼,百战不殆

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

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

如何反爬虫

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

识别

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

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

策反

  • 监禁:采集一次放到全局变量中进行记录,并隔离访问(通过过滤器拦截器等限制访问),然后再放出来(提高应用容错性),再次符合判断再进行隔离访问或终身监禁,但界面展示为网络问题,等待中(为了防止破译监禁制造假象);
  • 投毒:界面展示的数据经过加工处理,展示的数据变为假数据(半真半假)(也可乱码)(投毒一般都是看起来像真数据,不仅仅是爬到真数据,也是想欺骗爬虫);
  • 断奶:如果判断是爬虫,直接拉黑;
  • 筑墙:常见的验证码,各种验证,如简单的数字,复杂一点的文字、拖动滑块,稍微复杂一点的成语拼接、识图辩色,bug级别的认识白百何王珞丹、找小星星小伞、排序黑红方梅等;
  • 开锁:第一步拿钥匙,第二部开锁,第一步必须通过验证,常见搭配验证码,返回一个钥匙/code,拿着钥匙拼接正确的url地址进行访问,才能返回正常的数据界面;(筑墙的升级版)
  • 攻击(难度大,不建议):攻击方面有保守攻击和激进攻击两种,保守攻击如相应延时策略、返回大批量假数据策略、破坏数据解析规则策略等;激进攻击如肉鸡;
  • 混淆:常见css反爬或字体反爬,css反爬初级的文字顺序变动+css调样式调顺序,bug级别的图片+算法+偏移量等等计算出内容来;字体反爬,网页指定不常用字体,普通的客户端没有改字体,服务器在渲染的时候通过指定的服务器端字体渲染展示,如果没有改字体,爬下来也是乱码;提名表扬大众点评

一般建议:

识别:低成本高收益的是普通验证码+统计阈值;
处理:投毒/监禁,投毒可适用于部分补救措施;普通的可以筑墙提高爬虫成本;稍微高级一点可以结合开锁;大神bug级别就混淆或各种混搭;

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值