随着网络的发展和网络爬虫技术的普及,一些人收集某些需要的信息,会使用网络爬虫进行数据抓取。网络爬虫一方面会消耗网络系统的网络资源,同时可能会造成核心数据被窃取,因此对企业来讲如何反爬虫显得非常重要。本文简单介绍了网络爬虫的原理和危害,同时介绍了常见的反爬虫技术。
一、什么是网络爬虫
网络爬虫也叫网络蜘蛛,是一种用来自动浏览万维网的网络机器人,按照一定的规则可以自动提取网页内容的程序。网络爬虫主要用于网络资源的收集工作,搜索引擎通过网络爬虫爬取内容并将页面保存下来,以便搜索引擎事后生成索引供用户搜索。
二、网络爬虫的工作原理
网络爬虫一般分为如下两个阶段:第一阶段,URL库初始化然后开始爬取;第二阶段,爬虫读取没有访问过的URL,来确定它的工作范围。对于所要抓取的URL,具体步骤如下:
1.获取URL链接;
2.解析内容,获取URLj~相关数据;
3.存储有价值的数据;
4.对新抓取的uRL进行规范化;
5.过滤掉不相关的URL;
6.将要抓取的URL更新到URL库中;
7.重复步骤2,直到终止条件为止。
三、网络爬虫的危害
1.爬虫访问过程会消耗大量系统资源:爬虫的访问速度要远高于正常用户的访问,爬虫也可能会占用大量的服务器带宽,增加服务器的负载,并且爬虫程序可能会短时间内发出大量请求,影响用户正常的访问,导致网络拥堵;
2.内容和数据安全问题:网站的内容和数据已经成为网站的核心竞争力,数据被窃取可能会导致丧失竞争力。因此很多网站会使用反爬虫机制,防止搜索引擎以外程序爬取。
四、常见的反爬虫技术
爬虫有一个最基本的特征就是批量获取,而反爬虫机制也是根据这个特征来判断并进行反爬虫的。
1.限制IP:设定单个IP访问的阈值,如果一个IP 地址在短时间内访问频率超过阈值,可以暂时对这个IP 予以封禁;
2.基于Headers:Headers 是区分浏览器行为和机器行为最简单的方法。对于每个浏览器,访问网站都会有其固定的user agent,而网络爬虫的User-agent一般为空缺的,审查访问的请求头,如果是爬虫框架的形式,则判定为机器人用户,返回403错误,禁止访问。
3.添加人机识别的验证码:验证码作为一种人机识别手段,其主要作用是区分正常人和机器的操作,拦截恶意行为。传统的图形验证码在OCR、神经网络面前越来越形同无物,建议使用新一代行为式验证码,采用深度学习,快速准确的进行人机判断,具有可靠的安全性。点击免费试用网易易盾行为式验证码
4.采用数据异步加载:网页实现异步更新,爬虫所抓取的都是一个网站起始的HTML代码,不是异步刷新后的代码,可以将网站中受保护的部分使用AJAX技术异步加载到HTML中,既可以让用户正常访问,又可以保护内容不被网络爬虫爬取。
5.登录与cookies:校验Cookie的值来判定发起访问请求的是否是爬虫,通过登录ccokies反爬。
6.通过JS脚本加密网页内容。
综合运用以上各种反爬虫技术,可以很大程度上缓解网络爬虫的影响。道高一尺,魔高一丈。爬虫、反爬虫、甚至反反爬虫之间的对抗不会停止。
相关阅读:
参考文献:
《对反爬虫网站的应对策略》,刘石磊
《网络爬虫》,林雄强
《大数据时代的反爬虫技术》,陈利婷
【声明】文章来源于网上采集整理,如有侵权,请邮件反馈yidunmarket@126.com,我们将尽快核实修改。