爬虫与反爬虫,永恒的道高一尺魔高一丈
打从有采集这件事情开始,就有防采集的诞生。
今天,我们就一起来说说这些年遇到的各种防采集策略。
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成本。
爬虫与反爬虫,永恒的道高一尺魔高一丈相关推荐
- Python爬虫入门教程 65-100 爬虫与反爬虫的修罗场,点评网站,字体反爬之三
爬虫与反爬虫的修罗场 哪种平台最吸引爬虫爱好者,当然是社区类的,那里容易产生原生态,高质量的数据啊, 你看微博,知乎,豆瓣爬的不亦乐乎. 评论也是产生内容的好地方 生活类点评网站 旅游类点评网站 音乐 ...
- Python爬虫和反爬虫的斗争
我们常接触的网络爬虫是百度.搜搜.谷歌(Google)等公司的搜索引擎,这 些搜索引擎通过互联网上的入口获取网页,实时存储并更新索引.搜索引擎的基础 就是网络爬虫,这些网络爬虫通过自动化的方式进行网页 ...
- 爬虫与反爬虫之间的战争
编者:本文来自携程酒店研发部研发经理崔广宇在第三期[携程技术微分享]上的分享,以下为整理的内容概要.墙裂建议点击视频回放,"现场"围观段子手攻城狮大崔,如何高智商&高情商地 ...
- 爬虫与反爬虫的攻防博弈
遥想当年,我的第一份实习工作,还就是做的爬虫呢.不知不觉 7 年过去了,如今首例利用爬虫技术非法盗抓数据案都已经被判违法了. 我记得我第一份实习工作,就是做的爬虫,利用爬虫技术,去爬取各种论坛和网站, ...
- day 15爬虫与反爬虫与反反爬
爬虫与反爬虫与反反爬 爬虫的流程: 1.请求网页,获取响应结果 2.解析网页,提取数据 3.数据持久化(写入存放位置) 反爬与反反爬 1.User-Agent:将爬虫伪装成浏览器.例如:豆 ...
- Python爬虫从入门到放弃(二十二)之 爬虫与反爬虫大战
爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家? 重新理解爬虫中的一些概念 爬虫:自动获取网站数据的程序 反爬虫:使用技术手段防止爬虫程序爬取数据 误伤:反爬虫技术将普 ...
- 【Python】爬虫与反爬虫大战
爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家? 重新理解爬虫中的一些概念 爬虫:自动获取网站数据的程序 反爬虫:使用技术手段防止爬虫程序爬取数据 误伤:反爬虫技术将普 ...
- Python之爬虫(二十四) 爬虫与反爬虫大战
爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家? 重新理解爬虫中的一些概念 爬虫:自动获取网站数据的程序 反爬虫:使用技术手段防止爬虫程序爬取数据 误伤:反爬虫技术将普 ...
- 爬虫与反爬虫技术简介
vivo 互联网安全团队- Xie Peng 互联网的大数据时代的来临,网络爬虫也成了互联网中一个重要行业,它是一种自动获取网页数据信息的爬虫程序,是网站搜索引擎的重要组成部分.通过爬虫,可以获取自己 ...
- 爬虫,反爬虫和反反爬虫
转自:https://blog.csdn.net/yixuandong9010/article/details/75861233 随之大数据的火热,网络上各种网页抓取/爬虫工具蜂拥而来,因而,网页数据 ...
最新文章
- python语言程序设计基础答案第四章_《Python语言程序设计基础》第四章笔记
- shellcode学习总结
- 从锤子手机谈产品的逼格
- html5 css3考试f卷,HTML5 CSS3 JavaScriptWeb前端开发自测试卷3.docx
- Web前端基础---JQuery的页面加载+选择器+电子时钟案例
- L255 Learning to say no brings a thrill of freedom
- [转]java selenium webdriver实战 应用小结
- Spring Boot –无法确定数据库类型NONE的嵌入式数据库驱动程序类
- yarn依赖管理工具,和fis3构建工具 gulp详细用法
- 华为星环大数据_星环大数据平台介绍,盘点星环大数据和华为大数据
- 华为s2600t java_华为S2600T------v1版本
- 计算机网络的共享如何关闭,怎么查看并关闭网络共享
- 面试时,如何正确表现自己的实力?
- 算法导论第一,第二部分总结
- openssl命令查看证书有效期_使用 openssl 生成证书
- 如何调整DOSBOX的运行窗口大小
- 酬乐天扬州初逢席上见赠
- Kubernetes K8S之存储PV-PVC详解
- http://www.sciencedirect.com/ 外文文献免费全文下载方法
- 恶意进程(云查杀)-DDOS木马
热门文章
- C语言水洼数算法,水洼的数量算法 代码(C)
- 【低代码】云端组态集成与设备管理配置
- 计算机如何连接wifi台式,台式机怎么连接wifi_台式机连接wifi教程-太平洋IT百科...
- Navigation网站收藏和导航平台
- 吉里吉里1/吉里吉里2中KAG脚本的解释执行(1)
- 接口文档管理工具showDoc
- 每日一面 - Spring Boot 中的 ApplicationContext 的分层是什么意思?
- php 0改成百 千_php 根据啊拉伯数字转变成大写中文数字
- cpu占用高 mongo_记一次 MongoDB 占用 CPU 过高问题的排查
- python将多个表的数据合并到一个表