首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

反爬虫到底是怎么一回事?

爬虫与反爬虫永远是相生相克的:当爬虫知道了反爬策略就可以制定反-反爬策略,同样地,网站知道了爬虫的反-反爬策略就可以制定反-反-反爬策略。正可谓是道高一尺魔高一丈,两者之间的斗争是永远不会结束的。

——

在近几年兴起的一大堆新技术中,“爬虫”大概能算是最被大众所熟知的术语之一了。感兴趣的小伙伴们可以回顾企通查之前介绍过的关于爬虫的文章:

网络数据采集的边界在哪里?

网络爬虫详解:原理、工作流程及爬取策略(一)

网络爬虫详解:原理、工作流程及爬取策略(二)

网络爬虫详解:原理、工作流程及爬取策略(三)

正如其名,“爬虫”很好地体现出了这项技术的作用:像虫子一样分布在网络各个角落,成群结队的爬行每一个数据。

然而,虫子或许无害,却总是不受欢迎的。因为爬虫技术使用不当,往往会造成大量IP访问网站侵占带宽资源、以及用户隐私、知识产权等危害。许多企业为了驱虫,都会花大力气进行“反爬虫”。

反爬虫,是指对扫描器中的网络爬虫环节进行反制,通过一些反制策略来阻碍或干扰爬虫的正常爬行,从而间接地起到防御目的。比如当我们在某一网站浏览过快时,这种快速浏览的行为很接近爬虫,系统往往就会要求输入验证码。

在爬虫诞生之初,一些搜索引擎从业者和网站站长经过商讨定下了一项“君子协议”——robots.txt,即网站有权规定网站中哪些部分是否可以被爬虫抓取,这样既可以保护隐私和敏感信息,又可以使网站被搜索引擎收录、增加流量。

然而总会有人在利益诱惑下铤而走险,违反爬虫的君子协议,这时就需要改用技术手段来阻拦爬虫的入侵。然而,即便如此,我们也没有方法可以禁止爬虫在网站中的出入,如果网站可以供人访问,就也一定可以能被爬虫访问,如果选择从底层完全阻止爬虫抓取,会有很大可能让网站无法被搜索引擎收录,因此只能通过加大爬虫的访问难度来进行阻止。

根据先前对爬虫工作机制和原理的介绍文章,我们知道爬虫程序的访问速率和目的与正常用户是不同的,甚至可以说是有很大的区别:大部分爬虫会毫无节制地对目标应用进行爬取,这种由爬虫发出的网络请求被称为“垃圾流量”,甚至有说法称互联网上50%的流量都来自爬虫。

因此开发者为了保证服务器的正常运转或降低服务器的压力与运营成本,不得不使出各种各样的技术手段来限制爬虫获取数据和对服务器资源的访问。

因为爬虫和反爬虫都是对综合技术的应用,与爬虫工程师所用的工具和开发语言有关,甚至与爬虫工程师的个人能力也有一定关联,所以反爬虫涉及到的技术范围其实也很广。

限制爬虫程序访问服务器资源和获取数据的行为可以统称为反爬虫。限制手段包括但不限于请求限制、拒绝响应、客户端身份验证、文本混淆和使用动态渲染技术等。

这些限制根据出发点又可以分为主动型反爬虫和被动型反爬虫。

主动型反爬虫:开发者有意识地使用技术手段区分正常用户和爬虫,并限制爬虫对网站的访问行为,如验证请求头信息、限制访问频率、使用验证码等。

被动型反爬虫:为了提升用户体验或节省资源,用一些技术间接提高爬虫访问难度的行为,比如数据分段加载、点击切换标签页、鼠标悬停预览数据等。

除此之外,对于反爬虫,还可以从特点上进行更细致的划分,如信息校验型反爬虫、动态渲染型反爬虫、文本混淆型反爬虫、特征识别型反爬虫等。关于各种类型的反爬虫具体如何实现,小编将会在下期文章中为大家详细介绍,欢迎大家持续关注“企通查”。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210119A03AZE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券