Excel中怎样计算面积? Excel制作计算圆面积工具的教程-英雄云拓展知识分享
169
2023-11-13
【摘要】 本书摘自《Python网络爬虫 从入门到精通》一书中第9章,第2节,吕云翔、张扬和韩延刚等编著。
9.2 网站反爬虫
9.2.1 反爬虫的策略
网站反爬虫的出发点很简单,网站的目的是服务普通人类用户,而过多的来自爬虫程序 的访问无疑会增加很多不必要的资源压力,不仅不能为网站带来真实流量(能够创造商业效 益或社会影响力的用户访问数),反而白白浪费了服务器和运行成本。为此,网站方总是会 设计一些机制来进行“反爬虫”,与之相对,爬虫编写者们使用各种方式避开网站反爬虫机 制的过程就被称为“反反爬虫”(当然,递归地看,还存在“反反反爬虫”等)。网站反爬虫 的机制从简单到复杂各不相同,基本思路就是要识别出一个访问是来自于真实用户还是来自 于开发者编写的计算机程序(这么说其实有歧义,实际上真实用户的访问也是通过浏览器程 序来实现的,不是吗),因此, 一个好的反爬虫机制的最基本需求就是尽量多地识别出真正 的爬虫程序,同时尽量少地将普通用户访问误判为爬虫。识别爬虫后要做的事情其实就很简 单了,根据其特征限制乃至禁止其对页面的访问即可,但这也导致反爬虫机制本身的一个尴 尬局面,那就是当反爬虫力度小的时候,往往会有“漏网之鱼”(爬虫),但当反爬虫力度大 的时候,却有可能损失真实用户的流量(即“误伤”)。
从具体手段上看,反爬虫可以包括很多方式。
1 ) 识 别 Request Headers 信息。这是一种十分基础的反爬虫手段,主要是通过验证 Headers 中的 User-Agent 信息来判定当前访问是否来自于常见的界面浏览器。更复杂的 Headers 信息验证则会要求验证 Referer 、Accept-Encoding 等信息, 一些社交网络的页面甚至 会根据某一特定的页面类别使用独特的 Headers 字段要求。
2)使用 AJAX 和动态加载。严格地说这不是一种为反爬虫而生的手段,但由于使用了 动态页面,如果对方爬虫只是简单的静态网页源码解析程序,那么就能够起到保护数据和流 量的作用。
3)使用验证码。验证码机制(前面的章节已经涉及)与反爬虫机制的出发点非常契 合,那就是辨别出机器程序和人类用户的不同,因此验证码被广泛用于限制异常访问。 一个 典型场景是,当页面受到短时间内频次异常高的访问后,就会在下一次访问时弹出验证码。 作为一种适用于普遍应用场景的安全措施,验证码无疑是整个反爬虫体系的重要一环。
4)更改服务器返回的信息。即通过加密信息、返回虚假数据等方式保护服务器返回的 信息,避免被直接爬取, 一般会配合AJAX 技术使用。
5)限制或封禁 IP 。这是反爬虫机制最主要的“触发后动作”,判定为爬虫后就限制乃至 封禁来自当前IP 地址的访问。
6)修改网页或 URL 内容,尽量使得网页或 URL 结构复杂化,乃至通过对普通用户隐 藏某些元素和输入等方式来区别用户和爬虫。
7)账号限制。即只有登录账号才能够访问网站数据。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。