作家
登录

浅谈爬虫及绕过网站反爬取机制

作者: 来源: 2017-12-15 09:08:34 阅读 我要评论

开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散


爬虫是什么呢,简单而单方面的说,爬虫就是由计算机主动与办事器交互获取数据的对象。爬虫的最根本就是get一个网页的源代码数据,如不雅更深刻一些,就会出现和网页进行POST交互,获取办事器接收POST请求后返回的数据。一句话,爬虫用来主动获取源数据,至于更多的数据处理等等是后续的工作,这篇文┞仿重要想谈谈爬虫获取数据的┞封一部分。爬虫请留意网站的Robot.txt文件,不要让爬虫违法,也不要让爬虫对网站造成伤害。

反爬及反反爬概念的不恰当举例

基于很多原因(如办事器资本,保护数据等),很多网站是限制了爬虫效不雅的。

推敲一下,由仁攀来充当爬虫的角色,我们怎么获取网页源代码?最常用的当然是右键源代码。

网站樊篱了右键,怎么办?

事实上,在写爬虫的过程中必定出现过没有返回数据的情况,这种时刻也许是办事器限制了UA头(user-agent),这就是一种很根本的反爬取,只要发送请求的时刻加上UA头就可以了…是不是很简单?

拿出我们做爬虫中最有效的器械 F12(迎接评论辩论)

同时按下F12就可以打开了(滑稽)

2.png

源代码出来了!!

在把人算作爬虫的情况下,樊篱右键就是反爬取策略,F12就是反反爬取的方法。

讲讲正式的反爬取策略

有没有发明网站的验证码也是一个反爬取策略呢?为了让网站的用户能是真人,验证码真是做了很大年夜的供献。随验证码而来的,验证码辨认出现了。

说到这,不知道是先出现了验证码辨认照样图片辨认呢?

网站樊篱了右键,怎么办?

简单的验证码如今辨认起来是异常简单的,网上有太多教程,包含稍微进阶一下的去噪,二值,瓜分,重组等概念。可是如今网站人机辨认已经更加的恐怖了起来,比如这种:

6.jpg

简单讲述一下去噪二值的概念

将一个验证码3.png变成5.png就是二值,也就是将图片本身变成只有两个色调,例子很简单,经由过程python PIL库里的

  1. Image.convert("1") 

就能实现,但如不雅图片变得更为复杂,照样要多思虑一下,比如如不雅直接用简单方法的话 就会变成思虑一些这种验证码应当怎么辨认?这种时刻 去噪 就派上了用处,根据验证码本身的特点,可以盘似揭捉?证码的底色和字体之外的RGB值等,将这些值变成一个色彩,将字体留出。示例代码如下,换色即可

  1. for x in range(0,image.size[0]): 
  2.  
  3.         for y in range(0,image.size[1]): 
  4.  
  5.             # print arr2[x][y] 
  6.  
  7.             if arr[x][y].tolist()==底色: 
  8.  
  9.                 arr[x][y]=0 
  10.  
  11.             elif arr[x][y].tolist()[0] in range(200,256) and arr[x][y].tolist()[1] in range(200,256) and arr[x][y].tolist()[2] in range(200,256): 
  12.  
  13.                 arr[x][y]=0 
  14.  
  15.             elif arr[x][y].tolist()==[0,0,0]: 
  16.  
  17.                 arr[x][y]=0 
  18.  
  19.             else: 
  20.  

      推荐阅读

      MySQL引擎特性:InnoDB IO子系统

    媒介InnoDB做为一款成熟的跨平台数据库引擎,其实现了一套高效易用的IO接口,包含同步异步IO,IO归并等。本文简单介绍一下其内部实现,重要的代码集中在os0file.cc这个文件中。本文的分析默认基于MySQL 5.6,CentOS >>>详细阅读


    本文标题:浅谈爬虫及绕过网站反爬取机制

    地址:http://www.17bianji.com/lsqh/39783.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)