防采集与反爬虫常见的策略以及解决思路

 

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等方式,均是需要一定的开销开本,特别在大数据量面前,这个成本有时是非常巨大的。

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

相关采集教程

今日头条数据采集:

http://www.bazhuayu.com/tutorialdetail-1/jrtt-7.html

采集知乎话题信息(以知乎发现为例):

http://www.bazhuayu.com/tutorialdetail-1/zh-ht.html

淘宝网商品信息采集:

http://www.bazhuayu.com/tutorialdetail-1/cjtbsp-7.html

美团商家信息采集:

http://www.bazhuayu.com/tutorialdetail-1/mtsj_7.html

彩票开奖数据采集:

http://www.bazhuayu.com/tutorialdetail-1/cpkjdatacj.html

起点中文网小说采集方法以及详细步骤:

http://www.bazhuayu.com/tutorialdetail-1/qidianstorycj.html

亚马逊商品评论采集:

http://www.bazhuayu.com/tutorialdetail-1/ymxspplcj.html

八爪鱼——90万用户选择的网页数据采集器。

1、操作简单,任何人都可以用:无需技术背景,会上网就能采集。完全可视化流程,点击鼠标完成操作,2分钟即可快速入门。

2、功能强大,任何网站都可以采:对于点击、登陆、翻页、识别验证码、瀑布流、Ajax脚本异步加载数据的网页,均可经过简单设置进行采集。

3、云采集,关机也可以。配置好采集任务后可关机,任务可在云端执行。庞大云采集集群24*7不间断运行,不用担心IP被封,网络中断。

4、功能免费+增值服务,可按需选择。免费版具备所有功能,能够满足用户的基本采集需求。同时设置了一些增值服务(如私有云),满足高端付费企业用户的需要。

原文地址:https://www.cnblogs.com/haibo123/p/11294318.html

时间: 2024-11-10 13:41:17

防采集与反爬虫常见的策略以及解决思路的相关文章

Python Scrapy反爬虫常见解决方案(包含5种方法)

爬虫的本质就是“抓取”第二方网站中有价值的数据,因此,每个网站都会或多或少地采用一些反爬虫技术来防范爬虫.比如前面介绍的通过 User-Agent 请求头验证是否为浏览器.使用 JavaScript 动态加载资源等,这些都是常规的反爬虫手段. 下面针对更强的反爬虫技术提供一些解决方案. IP 地址验证 有些网站会使用 IP 地址验证进行反爬虫处理,程序会检查客户端的 IP 地址,如果发现同一个 IP 地址的客户端频繁地请求数据, 该网站就会判断该客户端是爬虫程序. 针对这种情况,我们可以让 Sc

Python 爬虫常见的坑和解决方法

1.请求时出现HTTP Error 403: Forbidden headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'} req = urllib.request.Request(url=url, headers=headers) urllib.request.urlopen(req).read() 详细:https://www.2cto.com/kf/

Nginx+PHP (Fastcgi)常见502和504解决思路分享

公司一台测试服务器,最近出现504和502问题:(环境LNMP,php编译安装,Fastcgi模式),问题不难解决,但这里分享一下自己的排查思路和处理问题的方式. 504 Gateway Time-out,nginx 502 bad gateway 一.分析问题: Nginx 504 Gateway Time-out的含义是没有请求到可以执行的PHP-CGI. Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于读取资源的等没有执行完毕而导致PHP-CGI进程

互联网网站的反爬虫策略浅析

因为搜索引擎的流行,网络爬虫已经成了很普及网络技术,除了专门做搜索的Google,Yahoo,微软,百度以外,几乎每个大型门户网站都有自己的搜索引擎,大大小小叫得出来名字得就几十种,还有各种不知名的几千几万种,对于一个内容型驱动的网站来说,受到网络爬虫的光顾是不可避免的. 一些智能的搜索引擎爬虫的爬取频率比较合理,对网站资源消耗比较少,但是很多糟糕的网络爬虫,对网页爬取能力很差,经常并发几十上百个请求循环重复抓取,这种爬虫对中小型网站往往是毁灭性打击,特别是一些缺乏爬虫编写经验的程序员写出来的爬

网站反爬虫

因为搜索引擎的流行,网络爬虫已经成了很普及网络技术,除了专门做搜索的Google,Yahoo,微软,百度以外,几乎每个大型门户网站都有自己的搜索引擎,大大小小叫得出来名字得就几十种,还有各种不知名的几千几万种,对于一个内容型驱动的网站来说,受到网络爬虫的光顾是不可避免的. 一些智能的搜索引擎爬虫的爬取频率比较合理,对网站资源消耗比较少,但是很多糟糕的网络爬虫,对网页爬取能力很差,经常并发几十上百个请求循环重复抓取,这种爬虫对中小型网站往往是毁灭性打击,特别是一些缺乏爬虫编写经验的程序员写出来的爬

2015第42周一爬虫与反爬虫

一般爬虫要考虑的问题 之前尝试了request和cheerio实现的简单抓取数据用例,真的很初级,真正的爬虫且不说Google.百度等商用爬虫,即便是一个开源爬虫也要考虑很多东西,比如nodejs的开源爬虫neocrawler: 抓取网页并进行结构化解析,提取关键字后索引入库,防止网页重复抓取: 抓取利用JS产生内容的网页: 重试容错机制,失败后详细记录: 预设cookie,解决登陆后才能抓取内容问题: 限制并发数和集成代理IP功能,避免被原网站屏蔽: 分布式抓取提升效率. 网站反爬虫常用方法

我是怎样把反反爬虫把数据爬下来的

最近看到公司的商务一条一条的从某个网站上复制数据到excel里,于是乎就打算写个爬虫把那个网站的数据都爬下来.一般的流程是模拟用户访问->获取数据->解析页面元素->balabala想干啥干啥.但这个网站大概是知道自己对爬虫很有吸引力,于是做了反爬虫的处理.查看返回的数据有一段这样的代码: void(function fuckie6(){if(location.hash && /MSIE 6/.test(navigator.userAgent) && !/

反击“猫眼电影”网站的反爬虫策略

0×01 前言 前两天在百家号上看到一篇名为<反击爬虫,前端工程师的脑洞可以有多大?>的文章,文章从多方面结合实际情况列举了包括猫眼电影.美团.去哪儿等大型电商网站的反爬虫机制.的确,如文章所说,对于一张网页,我们往往希望它是结构良好,内容清晰的,这样搜索引擎才能准确地认知它:而反过来,又有一些情景,我们不希望内容能被轻易获取,比方说电商网站的交易额,高等学校网站的题目等.因为这些内容,往往是一个产品的生命线,必须做到有效地保护.这就是爬虫与反爬虫这一话题的由来.本文就以做的较好的"

网站常见的反爬虫和应对方法

这几天在爬一个网站,网站做了很多反爬虫工作,爬起来有些艰难,花了一些时间才绕过反爬虫.在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采集部分. 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,大多数网站都从这些角度来反爬虫.第三种一些应用ajax的网站会采用,这样增大了爬取的难度. 通过Headers反爬虫  从用户请求的Headers反爬虫是最常