您的位置:首页 > 新闻资讯 >文章内容
大量采集数据,遇到验证码和IP限制问题怎么处理
来源:互联网 作者:admin 时间:2019-02-07 09:24:00

  一些爬取过程中的小问题,就不列举了,这里主要说的是验证码和IP限制的问题。对于网站的IP限制以及验证码限制,我们爬虫还是有不少的方法去解决的。下面小编先列举出问题所在:


  首当其冲,验证码,该网站采用了数字加中文的简单四则运算作为验证码。


  查询目标路径参数经过了加密,我并不能直接通过取路径加参数的方式来直接跳过某些页面。


  IP限制,该网站对访问的IP做了访问次数计数限制。经过我的测试,一个纯净IP访问该网站一小时内最多能爬取40个有效数据(这里针对我的抓取目标来说,HTTP请求次数差不多之多200次,但是若在30s内访问次数超过25次HTTP请求,那么这个IP就直接被封掉)


  一、验证码限制解决


大量采集数据,遇到验证码和IP限制问题怎么处理


  这种的验证码难度在于字符粘连,字符随机旋转问题。首先写了一个工具来测试:


大量采集数据,遇到验证码和IP限制问题怎么处理


  做特征库,通过分割出来的字符去匹配特征库的相似度来判断图片中的文字到底是什么。这里没有使用第三方的光学识别(OCR ),因为识别汉字感觉识别率还是比较差,而且验证码中的汉字其实并不多,就是几个特定的字符,加减乘除等。所以通过特征库来识别也是绰绰有余了。


  关于验证码,我来说说我的一些问题,对于灰度计算和二值化,但是对于降噪,也就是去干扰线,需要自己根据目标来写特定的算法。我这里是通过削皮的方式来去掉的,每次给所有阴影剥掉一层1px的范围,填充为白色。当然了,我这方法不具备通用性。不同的验证码需要根据观察来用不同的方式来去除。


  分割呢,也就是直方图了,其实我的验证码也是可以根据色彩来做单色的直方图,这样来一步完成分割字符和降噪(有这想法,但是没有实际去实现。不过看有些大牛的博客说这样的方法是可行的)。我所了解到的分割方法还有滴水分割,不过我拿了论文资料,可惜看得不是很懂。下面贴了一段简单绘制直方图的方法:


大量采集数据,遇到验证码和IP限制问题怎么处理


  关于随机旋转的字符问题,我的做法是,将验证码中的字符分割成独立单位后,进行正负30度旋转,每旋转一次,计算一次投影宽度,由于我们的字体基本上都是‘方块字’,所以呢,在旋转的时候,最小宽度肯定是‘摆正’了的,不过,这里有个小问题,那就是若源字符旋转超过45°,我们将字横着放置的时候,其宽度也是最小的。不过我们让机器多学习几次,将四个方向摆放的图形都学习了,就可以了。这就是卡壳法了。


  二、IP限制问题解决


  直接通过切换访问的代理来突破,这里没有丝毫技术性含量。挂上代理后,去访问目标网站,根据返回的结果判断代理是否还有效。若是无效了,将当前查询目标回滚一次,并切换代理就行了。可以直接使用代理精灵,IP可能率高达95%以上。


  三、爬虫实现爬取工作


大量采集数据,遇到验证码和IP限制问题怎么处理


  写了一个爬虫服务端和一个爬虫客户端,服务端当做中央处理器,来分配计算量,客户端爬虫用来抓取数据。这样的情况下,各个客户端执行的速度其实是不一样的,请求响应又快又慢,验证代理是否有效也需要时间,所有,客户端爬虫完成任务的时间肯定不一样,所以我安排了这样一台电脑做作为中央处理器,分批次,小剂量的去分发任务列表。并接收客户端回传的结果,等完成所有任务之后统一导出或者进行写入数据库等其他操作。


  每个节点上的爬虫,给17个线程去跑,10个做代理IP的验证,7个爬数据。若是给10台办公室的笔记本安装软件,一起去爬数据,那么,就相当于 70人/秒 的速度在访问这个网站。至此,效率问题也解决了。


  总线方面,将任务列表根据下面的节点数进行分配(上图是之前截的图,之前是均分出去,后来发现均分的客户端并不是同时完成,有的快有的慢,结果快的弄完了,就空闲了,慢的还在慢吞吞的跑,所以,之后进行了小剂量分配,变相的达到动态的安排任务量)。


相关文章内容简介
推荐阅读
  • 06 2020-03
    国内ip代理软件哪有卖

    生活中,很多从事网络推销的工作人员,都会选择在一段时间就进行IP更换,虽然这个更换的过程很繁琐,但是为了提高安全性能和网页浏览速度,也只能花时间话人力来进行手动设置,一些不

  • 10 2019-01
    网络爬虫如何爬取数据?网络爬虫有哪些用途?

    随着互联网的普及,大家的工作与生活都逐渐离不开网络,每天产生的数据也是非常多的,如果想从互联网中获取数据并进行分析,这个工作量非常的大,于是大家都使用各种采集工具。

  • 14 2019-06
    国内普通匿名代理ip能用吗?

    国内普通匿名代理ip能用吗?代理ip的使用确实可以解决很多的问题,对一些工作起到很大的作用,不过这并不是代表着,使用了代理ip就可以无视反爬虫策略了。很多朋友认为,使用代理ip就可

  • 20 2020-05
    哪种代理ip比较好用

    随着大数据和智能化时代的发展,爬虫作为重要的数据来源,也日渐重要。爬虫工作者自身需要一些技术来适应时代的要求,作为一个优秀的爬虫工程师,对于爬虫策略与反爬虫策略要有很深的

  • 28 2019-05
    爬虫代理IP池的维护

    爬虫代理IP池的维护要注意什么?一般上,如果需要使用大量的IP,这IP地址只能是动态的IP地址,否则无法满足需求,比较现在IP资源稀缺。代理IP池中的这些动态IP的有效时间长短不一,有些只

  • 14 2020-04
    代理ip软件刷量效果如何

    网络更改ip地址,如果你是需要在网上进行推广的工作者,那么刷量工作是比较经常使用代理软件的一种。

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部