打从有采集这件事情开始,就有防采集的诞生。

今天,我们就一起来说说这些年遇到的各种防采集策略。

1限制IP单位时间访问次数还有频率

背景:没有哪个常人一秒钟内能访问相同网站N次(不管是不是同一个网页)

解决办法:一般遇到这种情况我们就放缓采集频率,不管你写代码添加Sleep,或者在我们八爪鱼里面设置间隔时间都可以解决

进化1:有些高级点的防采集策略,他甚至监控到每个请求的频率,如果一直处于同一个频率,比如一秒一次,他也是会封。

解决办法:这种情况一般就需要我们在采集间隔里面加上随机数,每次访问的频率相对随机。

进化2:有些更残忍的防采集策略,他甚至会监控每IP每天或每时段请求网页的数量。因为他可以通过数据分析,知道大体上他真实的用户一般最多会访问他多少网页,如果超过,他也照样封。

解决办法:这种情况也就只有用多IP或者多服务器来解决了,虚拟出许多不同的终端在访问,平摊访问资源。八爪鱼在这块也提供了代理IP池套餐与旗舰版云服务器集群来保障。

2验证码

背景:验证码天生就是一个识别你到底是人还是机器的神器

解决办法:

这一招是被用烂的一招,现在普通的验证码,即使加了混淆,都可以通过图像识别技术给破解了,所以市面就多了好多诡异的验证码,最经典的,应该算是12306的验证码了吧。但是再复杂的验证码,包括那些中文成语,中文加减乘除之类的,都是有破解之法。因为这世上还有打码平台在,就是一种人工帮你输入验证码的平台。

八爪鱼内置支持绝大多数验证码的破解,除了少数的一两种特别极端,现在满世界还找不到破解之法,其他都支持。

3用户登录带COOKIE才能访问网站内容

背景:通过帐号来限制你访问的权限

解决办法

普通的,我们只需要通过八爪鱼采集进行登陆操作,只要你能提供相对应的帐号密码,八爪鱼可以进行模拟操作登陆网站,你就可以进去获取数据了。如果你没有帐号,那就一点办法都没有了。就像IT桔子,你没帐号,你只能看到前1000条数据。你只有付费购买他们的SAAS帐号,你才能看到更多数据。

进化一:即使有帐号也不管用

解决办法

就像京东的评论,你只能看到最新的1000条。这种时候就必须用上八爪鱼的定时采集,我们进行某种频率的监控,一有新数据就马上采集下来,保持跟进,保持积累。

4利用JS加密网页内容

背景:通过浏览器的JS运算出网页内容结果

解决办法

这种招术,在对付HTTP POST请求的时候,是一种增加复杂度与难度的招术。但是八爪鱼天生就是对抗这种,八爪鱼内置浏览器访问网页数据,在打开网页的时候就会去执行JS调用代码获取数据,然后再解析网页数据。所以自带JS运算,轻轻松松就把这种给绕过去了。

而一般通过代码或HTTP请求模式的爬虫技术,是怎么绕都绕不开这种,而通过写代码进行采集的同学,他必须把JS加密给破解了。

5链接随机化

背景:网站页面链接随机化,同一个页面有多个链接或根据不同情况生成链接

解决办法:这种情况,一般要求我们从源头开始访问,模拟人访问,比如从首页,进入到列表,再到内容页。他内页链接随机化,首页地址总不能随机吧。这种只要以不变应万变,即可破解。

进化1:利用脚本生成分页地址

解决办法:这种情况,在八爪鱼浏览器面前,也是一点效力都没有。因为八爪鱼是一种模拟人的操作,除非他生成的分页地址不是要给人访问的,要不,照样采。

6网页里面增加混淆不可见元素

背景:常规的网页数据解析为结构化数据,均是通过字符串定位与正则表达式匹配。所以增加混淆代码或文字,增加你破解的难度,给你增加麻烦。笔者曾见过某网页解析出来的时候写着:”不要采,不要采,再采我就又得被叼了“

解决办法:因为八爪鱼主要还是能通过XPATH定位的方式,这种小技俩在XPATH面前,轻松就被绕开了。大不了我们再用字符串替换,把一些混淆的字符段通过某种规则给替换掉即可。毕竟网页开发者留下混淆代码也是遵循某种规律留下的。

7网站随机出现模板

背景:增加采集难度,同一类页面,但是多种模板展现

解决办法:这种情况主要是耐心点,笔者见过分页列表页面,单数页是一种模板,双数页是另外一种,或者常规是一种,逢10就另外一种。这种就需要我们在一开始采集的时候,观察清楚。但这种又很好观察,一般换了模板,我们就采不到数据。

不可能同一模板,前面一页采得好好的,后面一页就不行了。多数是出现在模板不一致导致的。八爪鱼内置判断逻辑,你可以通过页面不同的特征,引导八爪鱼用不一样的解析来破解。

8人工智能防采集

背景:互联网99.9%以上的防采集措施,估计来来回回就这一些招吧,但是另外那0.01%,才是让人费劲的。像某些大公司,有专门的人工智能防采集团队。

他们可以通过识别你的网络请求,不管是走浏览器,还是走请求的方式,只要你访问他们网站的轨迹,不像是一般用户访问的轨迹,或绝大多数用户的轨迹,他们都会进行一些防采集的策略,比如增加验证码,或出现假数据等等。

解决办法:这种时候就要求我们,更加像”人“的操作一样,去进行采集。比如我们一般会先访问首页,然后点点一些位置,拖拉一下,然后再进行列表页,再看一看,再进入详情页等等。这些摸拟人的操作,均可通过八爪鱼完成,包括自动下拉多少屏,停留时间,鼠标停留位置等等。

进化一:建立黑IP池

些大型公司,还会建立黑IP池,一旦是池子里的IP进行访问,马上拒绝。这一般是出现在境外IP,或一些机房IP,说白就是已经被用烂的IP了。而这时候,优质的代理IP资源,就显得特别宝贵了。

在笔者看来,采集与防采集,永远都是一个矛盾的问题,无法说绝对采集到,或绝对采集不到。在这一行当里面,真正考究的是采集成功与收益的问题,比如说增加验证码,IP等方式,均是需要一定的开销开本,特别在大数据量面前,这个成本有时是非常巨大的。

而网站方,也是通过这一点,来增加你的采集难度采集成本,从而达到一个相对平衡可控的范围。笔者经手过的项目,有些项目每年需要花费上百万的IP或验证码成本才可获取到想要的数据,八爪鱼能做到的是,以相对较低的成本,帮你获取到你想要的数据,而不是0成本。

爬虫与反爬虫,永恒的道高一尺魔高一丈相关推荐

  1. Python爬虫入门教程 65-100 爬虫与反爬虫的修罗场,点评网站,字体反爬之三

    爬虫与反爬虫的修罗场 哪种平台最吸引爬虫爱好者,当然是社区类的,那里容易产生原生态,高质量的数据啊, 你看微博,知乎,豆瓣爬的不亦乐乎. 评论也是产生内容的好地方 生活类点评网站 旅游类点评网站 音乐 ...

  2. Python爬虫和反爬虫的斗争

    我们常接触的网络爬虫是百度.搜搜.谷歌(Google)等公司的搜索引擎,这 些搜索引擎通过互联网上的入口获取网页,实时存储并更新索引.搜索引擎的基础 就是网络爬虫,这些网络爬虫通过自动化的方式进行网页 ...

  3. 爬虫与反爬虫之间的战争

    编者:本文来自携程酒店研发部研发经理崔广宇在第三期[携程技术微分享]上的分享,以下为整理的内容概要.墙裂建议点击视频回放,"现场"围观段子手攻城狮大崔,如何高智商&高情商地 ...

  4. 爬虫与反爬虫的攻防博弈

    遥想当年,我的第一份实习工作,还就是做的爬虫呢.不知不觉 7 年过去了,如今首例利用爬虫技术非法盗抓数据案都已经被判违法了. 我记得我第一份实习工作,就是做的爬虫,利用爬虫技术,去爬取各种论坛和网站, ...

  5. day 15爬虫与反爬虫与反反爬

    爬虫与反爬虫与反反爬 爬虫的流程: ​ 1.请求网页,获取响应结果 ​ 2.解析网页,提取数据 ​ 3.数据持久化(写入存放位置) 反爬与反反爬 1.User-Agent:将爬虫伪装成浏览器.例如:豆 ...

  6. Python爬虫从入门到放弃(二十二)之 爬虫与反爬虫大战

    爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家? 重新理解爬虫中的一些概念 爬虫:自动获取网站数据的程序 反爬虫:使用技术手段防止爬虫程序爬取数据 误伤:反爬虫技术将普 ...

  7. 【Python】爬虫与反爬虫大战

    爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家? 重新理解爬虫中的一些概念 爬虫:自动获取网站数据的程序 反爬虫:使用技术手段防止爬虫程序爬取数据 误伤:反爬虫技术将普 ...

  8. Python之爬虫(二十四) 爬虫与反爬虫大战

    爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家? 重新理解爬虫中的一些概念 爬虫:自动获取网站数据的程序 反爬虫:使用技术手段防止爬虫程序爬取数据 误伤:反爬虫技术将普 ...

  9. 爬虫与反爬虫技术简介

    vivo 互联网安全团队- Xie Peng 互联网的大数据时代的来临,网络爬虫也成了互联网中一个重要行业,它是一种自动获取网页数据信息的爬虫程序,是网站搜索引擎的重要组成部分.通过爬虫,可以获取自己 ...

  10. 爬虫,反爬虫和反反爬虫

    转自:https://blog.csdn.net/yixuandong9010/article/details/75861233 随之大数据的火热,网络上各种网页抓取/爬虫工具蜂拥而来,因而,网页数据 ...

最新文章

  1. python语言程序设计基础答案第四章_《Python语言程序设计基础》第四章笔记
  2. shellcode学习总结
  3. 从锤子手机谈产品的逼格
  4. html5 css3考试f卷,HTML5 CSS3 JavaScriptWeb前端开发自测试卷3.docx
  5. Web前端基础---JQuery的页面加载+选择器+电子时钟案例
  6. L255 Learning to say no brings a thrill of freedom
  7. [转]java selenium webdriver实战 应用小结
  8. Spring Boot –无法确定数据库类型NONE的嵌入式数据库驱动程序类
  9. yarn依赖管理工具,和fis3构建工具 gulp详细用法
  10. 华为星环大数据_星环大数据平台介绍,盘点星环大数据和华为大数据
  11. 华为s2600t java_华为S2600T------v1版本
  12. 计算机网络的共享如何关闭,怎么查看并关闭网络共享
  13. 面试时,如何正确表现自己的实力?
  14. 算法导论第一,第二部分总结
  15. openssl命令查看证书有效期_使用 openssl 生成证书
  16. 如何调整DOSBOX的运行窗口大小
  17. 酬乐天扬州初逢席上见赠
  18. Kubernetes K8S之存储PV-PVC详解
  19. http://www.sciencedirect.com/ 外文文献免费全文下载方法
  20. 恶意进程(云查杀)-DDOS木马

热门文章

  1. C语言水洼数算法,水洼的数量算法 代码(C)
  2. 【低代码】云端组态集成与设备管理配置
  3. 计算机如何连接wifi台式,台式机怎么连接wifi_台式机连接wifi教程-太平洋IT百科...
  4. Navigation网站收藏和导航平台
  5. 吉里吉里1/吉里吉里2中KAG脚本的解释执行(1)
  6. 接口文档管理工具showDoc
  7. 每日一面 - Spring Boot 中的 ApplicationContext 的分层是什么意思?
  8. php 0改成百 千_php 根据啊拉伯数字转变成大写中文数字
  9. cpu占用高 mongo_记一次 MongoDB 占用 CPU 过高问题的排查
  10. python将多个表的数据合并到一个表