常见的反爬策略及其破解方法

原创: 笔者 深度学习与图像目标检测

用爬虫抓取网站数据的时候,经常会突然发现抓不了数据,这就说明你的爬虫程序被对方服务器识别为爬虫了。大型的网站都会设定完备的反爬策略,来维护自身的信息,而一般对方服务器判断请求者是一个合法者,多通过User-Agent、IP、Cookies、数据加密等方式。下面针对这几种反爬策略,列出一些常用的破解反爬虫技术方案,供大家在设计爬虫时参考。

用户请求的Headers设置

     当用户访问一个网站时,网站会对Headers的User-Agent进行检测,还有一部分对Referer检测,当遇到这种反爬机制,在爬虫当中添加Headers请求头,将浏览器的请求信息以字典的数据形式添加到爬虫请求头部.一般通过浏览器调用键盘F12快捷键或者右键查看元素调出对一个网页的请求显示,然后点击Network即可查看当前User-Agent信息。做爬虫时最好随机切换不同的User-Agent,以便让服务器判断不是当前一个固定的浏览器访问。

     数据解密

有时候数据显示在页面对使用者来说是友好的,但对爬虫来说就糟糕了。然而有些数据是通过JS加密、Ajax请求来获取数据。有些通过javascript进行加密页面数据,这种只能找到加密代码进行处理,这种方案是最好、最快获取数据,但是破解难度较大,会花费相当多的时间。其中本人也遇到过这种网站。这种破解方案就是使用Selenium+PhantomJS,调用浏览器内核,使用Selenium模拟人为操作网页,并解析页面中的JS脚本,最终想获取的数据才能获取.这种操作几乎能破解大多数数据加密反爬虫,不过它的效率比较低。

验证码识别

 

     利用图片验证码防止爬虫也比较常见,常见12306网站验证码、网站登录图片验证、Google 验证码等等,目前对特别复杂的验证码没有很好的识别,只能通过第三方平台或者图像识别技术解决。常见的Python图片识别库包括Tesseract和其他第三方识别平台。

 

代理IP设置

 

     如果你的爬虫用固定的IP去抓取数据,不到一会也会被识别你是爬虫。网站通过检测访问者IP是否在一定时间进行大量访问,一旦被检测直接封杀。一般在请求的时候加入代理IP,网上大多数免费代理IP的可效性 比较低,最好使用购买代理,基本有效性90%以上。所以做爬虫系统,最好购买有效性比较高的代理IP,然后建立代理IP池,定时判断IP的有效性后,再添加代理进行抓取。

 

Cookies重置

 

     有些网站为了辨别用户身份,进行Session跟踪,服务器会向用户本地浏览器存储文本文件,当进行下次访问的时候,浏览器会自动带这个文件给服务器,服务器进行判断识别用户.所以服务器利用Cookies包含的信息判断在HTTP传输中的状态.Cookies最典型的应用判断是否已经登录和保留用户信息。

      一般反爬服务器也会对cookie进行时间有效设置,如果在有效期外,就不能抓取数据了。这种破解方式就要建立一个cookie池了,定时通过cookie池中的cookie去访问网站判断,如果失效,则往池里添加新的cookie信息,依次循环.

 

     本文粗略地介绍了以上几种反爬破解方案,几乎能破解90%以上的反爬。做爬虫应用,实际上就是和反爬策略角逐的过程,为了保证数据的有效性和价值,我们在设计爬虫时需要根据实际情况,采用相应的破解策略。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值