反爬虫简述

  爬虫程序的访问速率和目的与正常用户的访问速率和目的是不同的,大部分爬虫会无节制地对目标应用进行爬取,这给目标应用的服务器带来巨大的压力。爬虫程序发出的网络请求被运营者称为 "拉圾流量"。

  开发者为了保证服务器的正常运转或降低服务器的压力与运营成本,不得不使出各种各样的技才手段来限制爬虫对服务器资源的访问。因为爬虫和反爬虫是综合技术的应用,反爬虫的现象与爬虫程师所用的工具和开发语言有关,甚至与爬虫工程师的个人能力也有一定关联.所以反爬虫的概念常模糊,业内并没有明确的定义。?简而言之,限制爬虫程序访问服务器资源和获取数据的行为称为反爬虫。限制手段包括但不限于请求限制、拒绝响应、客户端身份验证、文本混淆和使用动态渲染技术。这些限制根据出发点可以分为主动型反爬虫和被动型反爬虫。

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

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

  (3)除此之外,还可以从特点上对反爬虫进行更细致的划分,如信息校验型反爬虫、动态渲染型反爬虫、文本混淆型反爬虫、特征识别型反爬虫等。需要注意的是,同一种限制现象可以被归类到不同的反爬虫类型中,比如通过JavaScript 生成随机字符串并将字符串放在请求头中发送给服务器,由服务器校验客户端身份的这种限制手段既可以说是信息校验型反爬虫,又可以说是动态渲染反爬虫。

  反爬虫不仅要了解网站流量情况,还需要了解爬虫工程师常用的手段,并从多个方面进行针对性的防护。反爬虫的方案设计、实施和测试等都需要耗费大量的时间,而且往往需要多个部门配合才自完成。从这个角度来看,除了技术难度外,时间成本也是非常高的。

  经济方面的开支通常有IP代理费用、云服务器购买费用、VIP账户开通费用等。除此之外、还要耗费比反爬虫更多的时间,这是因为当目标网站的算法或者网页结构更改时,爬虫代码也需要做对应的改变,有时候甚至需要重写代码。我们可以通过下表了解到它们之间针锋相对又互相进步的关系:

爬虫 反爬虫
Python 代码向目标网站发起网络请求,爬取网站数据 监控到异常流量,如果请求并非来自汉网站数据则拒绝请求
模拟浏览器标识,欺骗目标网站 监控到大量请求均来自同一个浏览器标识,考虑爬虫伪造,限制访问频率
使用IP轮换或多机的方式对目标网站发起请求 在一些人口或表单处增加验证码,以区别正常用户和爬虫
简单的验证码可以通过代码识别,复杂的验证码则通过接入打码平台,继续对目标网站发起请求 完善账号体系,规定只有VIP才能浏览关键信息,避免珍贵的数据被爬虫大规模爬取
注册多个账号并开通网站VIP 自定义混淆规则对网站的重要信息进行混淆,增加爬虫识别难度
当解密成本较高时,采用屏幕截图的方式获取关键数据 根据自动化测试框架或浏览器的特征区别用户和爬虫
成本太高,有可能放弃爬取 成本太高,无法完全限制爬取

爬虫与反爬虫都是综合技能的应用,其中涉及的技术包括web开发,服务器,数据传输,编程语言特性和工具特性等。

原文地址:https://www.cnblogs.com/codexlx/p/12556275.html

时间: 2024-10-08 05:51:24

反爬虫简述的相关文章

反爬虫和抗DDOS攻击技术实践

导语 企鹅媒体平台媒体名片页反爬虫技术实践,分布式网页爬虫技术.利用人工智能进行人机识别.图像识别码.频率访问控制.利用无头浏览器PhantomJS.Selenium 进行网页抓取等相关技术不在本文讨论范围内. Cookie是什么 大家都知道http请求是无状态的,为了让http请求从"无状态" to "有状态" , W3C 在 rfc6265 中描述了整个http协议的状态机制,既从客户端(通常是浏览器)到服务器端的流转过程,cookie 的引入使得 服务器在 接

反爬虫破解系列-汽车之家利用css样式替换文字破解方法

网站: 汽车之家:http://club.autohome.com.cn/ 以论坛为例 反爬虫措施: 在论坛发布的贴子正文中随机抽取某几个字使用span标签代替,标签内容位空,但css样式显示为所代替的文.这样不会 影响正常用户的阅读,只是在用鼠标选择的时候是选不到被替换的文字的,对爬虫则会造成采集内容不全的影响. 原理分析: 先看一下span标签的样式 截图是火狐浏览器的firebug的html面板.我们可以看到正文中每个span标签的样式都是一个文字,我们只需要找到每个 span标签的cla

第7章 Scrapy突破反爬虫的限制

7-1 爬虫和反爬的对抗过程以及策略 Ⅰ.爬虫和反爬虫基本概念 爬虫:自动获取网站数据的程序,关键是批量的获取. 反爬虫:使用技术手段防止爬虫程序的方法. 误伤:反爬虫技术将普通用户识别为爬虫,如果误伤过高,效果再高也不能用. 成本:反爬虫需要的人力和机器成本. 拦截:成功拦截爬虫,一般拦截率越高,误伤率越高. Ⅱ.反爬虫的目的 初级爬虫----简单粗暴,不管服务器压力,容易弄挂网站. 数据保护 失控的爬虫----由于某些情况下,忘记或者无法关闭的爬虫. 商业竞争对手 Ⅲ.爬虫和反爬虫对抗过程

网站常见的反爬虫和应对方法

这几天在爬一个网站,网站做了很多反爬虫工作,爬起来有些艰难,花了一些时间才绕过反爬虫.在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采集部分. 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,大多数网站都从这些角度来反爬虫.第三种一些应用ajax的网站会采用,这样增大了爬取的难度. 通过Headers反爬虫  从用户请求的Headers反爬虫是最常

网站反爬虫

因为搜索引擎的流行,网络爬虫已经成了很普及网络技术,除了专门做搜索的Google,Yahoo,微软,百度以外,几乎每个大型门户网站都有自己的搜索引擎,大大小小叫得出来名字得就几十种,还有各种不知名的几千几万种,对于一个内容型驱动的网站来说,受到网络爬虫的光顾是不可避免的. 一些智能的搜索引擎爬虫的爬取频率比较合理,对网站资源消耗比较少,但是很多糟糕的网络爬虫,对网页爬取能力很差,经常并发几十上百个请求循环重复抓取,这种爬虫对中小型网站往往是毁灭性打击,特别是一些缺乏爬虫编写经验的程序员写出来的爬

爬虫与反爬虫

转自:https://mp.weixin.qq.com/s/-w-yC6PCdTOpfKS8HZEleA 前言 爬虫与反爬虫,是一个很不阳光的行业. 这里说的不阳光,有两个含义. 第一是,这个行业是隐藏在地下的,一般很少被曝光出来.很多公司对外都不会宣称自己有爬虫团队,甚至隐瞒自己有反爬虫团队的事实.这可能是出于公司战略角度来看的,与技术无关. 第二是,这个行业并不是一个很积极向上的行业.很多人在这个行业摸爬滚打了多年,积攒了大量的经验,但是悲哀的发现,这些经验很难兑换成闪光的简历.面试的时候,

python解决网站的反爬虫策略

网站的反爬虫策略: 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采集部分. 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,大多数网站都从这些角度来反爬虫.第三种一些应用ajax的网站会采用,这样增大了爬取的难度(防止静态爬虫使用ajax技术动态加载页面). 1.从用户请求的Headers反爬虫是最常见的反爬虫策略. 伪装header.很多网站都会对Headers的User-Agent进行检测,还有一部分网站

常见的反爬虫和应对方法

0x01 常见的反爬虫 这几天在爬一个网站,网站做了很多反爬虫工作,爬起来有些艰难,花了一些时间才绕过反爬虫.在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采集部分. 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,大多数网站都从这些角度来反爬虫.第三种一些应用ajax的网站会采用,这样增大了爬取的难度. 0x02 通过Headers反爬虫 从用户

网站常见的反爬虫和应对方法(转)

在我们的对2016年大数据行业的预测文章<2016年大数据将走下神坛拥抱生活 资本青睐创业机会多>里,我们曾经提到“在2016年,防止网站数据爬取将变成一种生意.”.今天我找到了来自”BSDR“的一篇文章,文章里主要介绍了常见的反爬虫应对方法,下面是正文. 常见的反爬虫 这几天在爬一个网站,网站做了很多反爬虫工作,爬起来有些艰难,花了一些时间才绕过反爬虫.在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采