商丘做网站,商丘网站优化,商丘网络推广,商丘网络公司
当前位置:首页 > 新闻资讯 > 建站经验 >

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

发表日期:2018-01-14 19:44聚圣源浏览次数: 本文关键词:浅谈,爬虫,及,绕过,网站,反爬,取,机制,爬虫,

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

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

  基于很多原因(如服务器资源,保护数据等),很多网站是限制了爬虫效果的。

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

  网站屏蔽了右键,怎么办?

  

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

 

  拿出我们做爬虫中最有用的东西 F12(欢迎讨论)

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

  

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

 

  源代码出来了!!

  在把人当作爬虫的情况下,屏蔽右键就是反爬取策略,F12就是反反爬取的方式。

  讲讲正式的反爬取策略

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

  其实一股脑把需要不需要的Request Headers都加上也是一个简单粗暴的办法……

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

  说到这,不知道是先出现了验证码识别还是图片识别呢?

  简单的验证码现在识别起来是非常简单的,网上有太多教程,包括稍微进阶一下的去噪,二值,分割,重组等概念。可是现在网站人机识别已经越发的恐怖了起来,比如这种:

  

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

 

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

  将一个验证码

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

变成

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

就是二值,也就是将图片本身变成只有两个色调,例子很简单,通过python PIL库里的

 

  Image.convert("1")

  就能实现,但如果图片变得更为复杂,还是要多思考一下,比如

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

如果直接用简单方式的话 就会变成

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

思考一些这种验证码应该怎么识别?这种时候 去噪 就派上了用处,根据验证码本身的特征,可以计算验证码的底色和字体之外的RGB值等,将这些值变成一个颜色,将字体留出。示例代码如下,换色即可

  for x in range(0,image.size[0]):

  for y in range(0,image.size[1]):

  # print arr2[x][y]

  if arr[x][y].tolist()==底色:

  arr[x][y]=0

  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):

  arr[x][y]=0

  elif arr[x][y].tolist()==[0,0,0]:

  arr[x][y]=0

  else:

  arr[x][y]=255

  arr是由numpy得到的,根据图片RGB值得出的矩阵,读者可以自己尝试完善代码,亲自实验一下。

  细致的处理之后图片可以变成

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

识别率还是很高的。

 

  在验证码的发展中,还算清晰的数字字母,简单的加减乘除,网上有轮子可以用,有些难的数字字母汉字,也可以自己造轮子(比如上面),但更多的东西,已经足够写一个人工智能了……(有一种工作就是识别验证码…)

  再加一个小提示:有的网站PC端有验证码,而手机端没有…

  下一个话题!

  反爬取策略中比较常见的还有一种封IP的策略,通常是短时间内过多的访问就会被封禁,这个很简单,限制访问频率或添加IP代理池就OK了,当然,分布式也可以…

  IP代理池->左转Google右转baidu,有很多代理网站,虽然免费中能用的不多 但毕竟可以。

  还有一种也可以算作反爬虫策略的就是异步数据,随着对爬虫的逐渐深入(明明是网站的更新换代!),异步加载是一定会遇见的问题,解决方式依然是F12。以不愿透露姓名的网易云音乐网站为例,右键打开源代码后,尝试搜索一下评论

  

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

 

  数据呢?!这就是JS和Ajax兴起之后异步加载的特点。但是打开F12,切换到NetWork选项卡,刷新一下页面,仔细寻找,没有秘密。

  

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

 

  哦,对了 如果你在听歌的话,点进去还能下载呢…

  

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

 

  仅为对网站结构的科普,请自觉抵制盗版,保护版权,保护原创者利益。

  如果说这个网站限制的你死死的,怎么办?我们还有最后一计,一个强无敌的组合:selenium + PhantomJs

  这一对组合非常强力,可以完美模拟浏览器行为,具体的用法自行百度,并不推荐这种办法,很笨重,此处仅作为科普。

  总结

  本文主要讨论了部分常见的反爬虫策略(主要是我遇见过的(耸肩))。主要包括 HTTP请求头,验证码识别,IP代理池,异步加载几个方面,介绍了一些简单方法(太难的不会!),以Python为主。希望能给初入门的你引上一条路。

如没特殊注明,文章均来自网络! 转载请注明来自:http://www.jushengyuan.com.cn/news/jzjy/9803.html

网站设计案例推荐

热门文章

站长工具综合查询里面SSL证书不...

SSL证书不安全是怎么回事?但是点进去这个提示后,显示的是别人的tdk是不是被劫持或者被黑了?...

日期:2018-03-27 浏览次数:1932

简洁而实用的版权信息可增色网...

打开网站,人们自然会从上往下浏览,首先映入眼帘的一定是BANNER主视觉,然后是网站主体内容部分。相比较而言,注意到网站底部版权信息的浏览者确实不多,但这并说明网站版权信...

日期:2018-09-20 浏览次数:1889

网站设计需要注意的3点问题...

对于网站设计来讲会受到很多因素的影响,而且不同类型的网站,在设计时需要体现的元素也不一样,比如说对于一个企业网站更想体现出品牌以及产品的特点,主要是对产品、企业信...

日期:2018-02-12 浏览次数:1809

企业网站为什么要改版 改版选择...

网站改版,是每个建站企业必须面临的工作。相信也有不少站长问,已经做好的企业网站,为何还要大费周章重新进行改版设计呢?下面小编就来给大家说说,企业究竟为什么要改变,并...

日期:2018-03-26 浏览次数:1345

永城网站制作:模板建站不可不...

随着互联网建站尤其是自助建站热潮不断高涨,建站行业涌现出越来越多的自助建站平台,这些平台普遍都提供网站模板可选。...

日期:2018-04-30 浏览次数:940

相关文章

「睢县网络推广」《从0建站,...

最新进度 : 2018年9月18日完成网站搭建 2018年9月19日完成网站风格设置、基本内容设置、网站内容添加等 2018年9月20日计划完成网站搭建、开始正式推广 ----------------------------------------...

日期:2018-09-21 浏览次数:75

短网址(short URL)系统的原理及其...

背景 提供一个短址服务 你有没有发现,我们的任务中出现长 URL 就会比较麻烦?如果有一个短址生成器就好了。虽然市面上有很多,但是我们可以重复发明一个轮子,利用这个机会尝试...

日期:2018-01-19 浏览次数:71

浅谈网站遇到问题时的解决办法...

作为一个博主站长遇到问题是常有的事情,或 SEO 问题,或程序问题,或主题修改问题等等。当我们在遇到这些问题的时候,想要快速地解决,在一定程度上取决于问题的难度,但是更...

日期:2018-01-19 浏览次数:89

网站SEO建设运营维护遇到问题,...

作为一个做网站和网站SEO的站长,遇到问题是常有的事情,或许是SEO问题,或许是程序问题,或许是服务器问题,或许是页面模板代码问题等等。遇到问题很正常,有问题说明我们在进...

日期:2018-01-14 浏览次数:72

HTTPS连接过程以及中间人攻击劫...

一 、HTTPS连接过程及中间人攻击原理 https协议就是http+ssl协议,如下图所示为其连接过程: 1.https请求 客户端向服务端发送https请求; 2.生成公钥和私钥 服务端收到请求之后,生成公钥和...

日期:2018-01-14 浏览次数:85

随机推荐

江湖外卖O2O系统积分商城华丽变...

大话西游之建站宝盒:利用“互...

美容O2O解决方案,总有一款适合...

多年的网站优化知识白学了 这样...

百度VIP大讲堂上海站干货大放送...

如何选择优质论坛虚拟主机...