当前位置: 移动技术网 > 网络运营>安全>网站建设 > 爬虫是什么?浅谈爬虫及绕过网站反爬取机制

爬虫是什么?浅谈爬虫及绕过网站反爬取机制

2018年02月26日  | 移动技术网网络运营  | 我要评论

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

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

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

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

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

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

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

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

2.png

  源代码出来了!!

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

  讲讲正式的反爬取策略

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

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

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

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

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

6.jpg

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

  将一个验证码

3.png

变成

5.png

就是二值,也就是将图片本身变成只有两个色调,例子很简单,通过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。以不愿透露姓名的网易云音乐网站为例,右键打开源代码后,尝试搜索一下评论

8.png

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

7.png

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

4.png

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

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

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

  总结

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

  • 互联网创业者的五类人群

    在跟一些会员交流过程中发现不同的人群需求不同,关注点也不同。做平台一定要非常熟悉自己面向的用户群体,于是这里根据我个人的经验将互联网创业者做个分类: 1.... [阅读全文]
  • 网络营销人员必备素质分析

    1、文字表达能力这是作为网络营销人员的基本能力; 2、资料收集能力; 3、用户体验能力因为通过个人网站建设和维护,会对网站建设、网站推广、网站效果评估等方面的知... [阅读全文]
  • 白手起家需要考虑的27个创业原则

    第一件事 你有创业家的特质吗?   守则#1要顺利开创事业,你需要有某种程度的偏执。   守则#2开创事业并追求成长,是世界上最孤独的工作,所以你必须心甘情愿。... [阅读全文]
  • 16个步骤增强你的博客影响力

    你是否期待着你的博客蒸蒸日上,你是否热衷于建立一个大型的读者社区,甚至成为一个全职的职业博客作家,这些都需要博客有更大的影响力和更大的声誉,这里就总结了一些有效... [阅读全文]
  • 江礼坤:手把手教你策划网站

    “市场推广宝典”这个系列的文章,写了有六、七篇了,期间很多人加了笔者的群,在里面讨论各种网站运营与推广方面的问题,笔者很是欣慰,感谢大家的信任和支持。在交流中笔... [阅读全文]
  • 社区化,垂直网站的发展趋势

    垂直网站是相对于门户网站而言的,其特点表现为“专而精”,它专注于某一领域或者服务于某一地区。比较典型的垂直网站如财经网站、IT网站和地方网站。垂直网站的发展历史... [阅读全文]
  • IT垂直网站盈利模式剖析

    根据艾瑞咨询以往对IT垂直网站的研究发现,2001-2006年中国IT类网络媒体数量规模总体呈上升趋势,其中2003年和2004年的增长率达到100%以上,属于... [阅读全文]
  • 个人站长做本地网络创业:要脸还是要钱

      “我的网站不盈利,该怎么办?”这是一个在目前看来永远都会有人问的问题,“该怎么赚钱?”这也是一个永远值得研究探讨的问题。 有技术有流量靠广告联盟过日子的网站... [阅读全文]
  • 中国网站的生命周期有几天?

    最近利用研究永动能量机的闲暇时间,做了大量的调查研究,观察分析和判断对比,发现中国的网站死亡率相当高,而且死亡速度相当快。而国外,无论是商业网站,还是个人网站,... [阅读全文]
  • 电子商务网站转型的几个方向

    为了给电子商务平台买卖双方以更大的吸引力,或许可以从企业本身的需求上得到一点启发: 第一、终端消费群体对生活品质的要求不会因为经济环境的恶化而降低标准,性价比足... [阅读全文]
验证码:
移动技术网