当前位置: > python爬虫 >

python常见的反爬虫技术介绍
栏目分类:python爬虫   发布日期:2019年03月13日 15:37:36   浏览次数:

大家好,我是爱吃苹果的宇文拓,今天我给大家介绍关于常见的网站反爬手段

        我们做爬虫,从别人网站上获取自己想要的信息,这必然会对别人的服务器造成压力。并且我们还可以通过爬虫自动注册,或者是用于抢票之内的。你对别人服务器造成了压力,那别人肯定会利用相关的技术来进行反爬。以前的反爬从识别User-Agent,referer等信息,到现在的各种先进的反爬技术。接下来我将介绍关于一些常见的反爬技术。

所谓道高一尺魔高一丈,反爬技术的多样化,反反爬技术也在进步。所以有反爬技术,也有相应的解决手段。

1、常见的检查headers信息,如检查User-Agent的内容。
     
        如图,有些网站会以检测请求头里面的一些字段来判断是否为爬虫,如User-Agent,Referer等。我们在写爬虫的时候,在请求头上添加这些信息就可以解决这一反爬技术。


     
        
2、检查请求时的cookie信息,有些访问必须携带有效cookie

      有些网站的内容在访问的时候,必须携带有效cookie才能成功访问,比如淘宝网站的搜索功能页面,现在搜索商品必须要有有效cookie才能访问。




3、访问次数限制,如封锁ip,有时我们在同一时间段频繁请求某个网站,网站会对我们的ip进行封锁。

     对于这个反爬机制,因为我们在做爬虫的时候ip地址很有可能是固定不变的,所以网站对我们的ip进行了检测,如果我们的ip地址在一段时间内访问过于频繁或者是在一天内访问的次数过多,网站就会对我们的ip地址进行封锁,拒绝我们访问。但是那里有问题,那里就有解决办法。很多服务商提供有效的ip代理,我们只要在请求中加入ip代理就可以解决这一反爬机制。

4、字体反扒,有些网站对文章的文字进行了自定义字体设置,我们直接抓取到的文字是乱码

           对于一些网站,如汽车之家的论坛版块,有时我们在对抓取下来的信息做处理的时候发现有些文字是乱码的,如下图


        
如图有些文字是乱码,这时我们就必须找到对应的字体文件,对文字进行准确的解析。具体操作,请关注我后续的文章,我们讲解。

5、css反扒,有些网站利用css来隐藏文字信息。

     css反爬与上面的字体反爬差不多,只是这个是利用了css对文字进行加密,然而上面的是利用了自定义字体对文字进行加密。后续我也会详细介绍。

6、将视频分割为许多一小段的视频,如m3u8文件

          有些视频网站,如优酷视频。它们对视频进行了分割,将整个视频以一个M3U8文件方式存储。然后在分别请求各段视频最后在合并在一起即可。


           
如上图就是一个m3u8文件格式。

7、对selenium的限制,有时我们模拟浏览器操作的时候,需要用到selenium,但是有的网站能识别出来

      最近我在研究模拟淘宝网站登录的时候,发现淘宝网站能识别出我使用selenium了。然后不管我怎么拖动滑块验证码,都不能通过。研究一段时间发现,selenium并不是万能的,它有一些特征值,服务器就是通过这些特征值,然后检测出我非人为操作。解决办法是,使用中间人代理,比如mitmproxy修改selenium特征值,然后突破网站对selenium的限制。详细步骤我后续文章会说明,请敬请期待。

8、app加密,在爬取app的时候,可能对某个参数进行了加密处理,这时需要用到反编译技术,或是“”脱壳“技术

     在抓取APP数据的时候需要用到代理服务器,一些简单的app可以直接抓取,但是对于一些加密的app就需要用到反编译或者是脱壳技术。这个实施起来比较复杂,要求的知识点也比较多,这里就先提一下思路吧,请朋友们自行了解。不过还有一种思路是使用代理服务器(mitmproxy)加Appium模拟人为操作。

9、验证码技术,现在最流行的反爬机制


       验证码技术,是目前最流行的反爬机制,有图形验证码,滑动验证码,问答题验证码,种类甚多。解决思路也各有千秋。比如图形验证码:我们可以使用机器学习,训练模型,识别验证码,还可以直接对接打码平台,如若快平台。提供一张图片,打码平台返回正确的结果。这种方式很高效,准确率也高,但是不是免费的。对于滑动验证码,可以使用selenium模拟认为操作,拖动滑块。

10、js加密,有些网站对某个参数进行了JavaScript加密。

      对于JavaScript加密,也是很常见的反爬技术,很多网站利用js对一些参数进行了加密处理,我们必须要看得懂JavaScript代码,然后明白器加密过程,最后在用python代码实现,到达解密的目的。当然这不是唯一的解决办法,我们还可以利用一些工具来直接执行js代码,到达解密的目的。



总结:今天介绍了许多常见的网站反爬机制,以及关于这些反爬技术的解决思路,读者们可以照着我提供的思路去研究一下。当然我不能保证每个思路现在都行之有效,因为爬虫,与反爬一直都是在相互斗争的。所以我们要顺应反爬机制,来改变我们反反爬的技术。从而抓取到我们需要的信息。




相关热词:

相关内容
热门关键词
python字符串
     
python教程 python爬虫 python人工智能 Python+大数据 python问答