网络爬虫是什么(爬虫怎么学)
网络爬虫是什么(爬虫怎么学)爬虫的起源
爬虫的起源可以追溯到万维网(互联网)诞生之初,一开始互联网还没有搜索。在搜索引擎没有被开发之前,互联网只是文件传输协议(FTP)站点的集合,用户可以在这些站点中导航以找到特定的共享文件。
为了查找和组合互联网上可用的分布式数据,人们创建了一个自动化程序,称为网络爬虫/机器人,可以抓取互联网上的所有网页,然后将所有页面上的内容复制到数据库中制作索引。
爬虫的发展
随着互联网的发展,网络上的资源变得日益丰富但却驳杂不堪,信息的获取成本变得更高了。
相应地,也日渐发展出更加智能,且适用性更强的爬虫软件。
它们类似于蜘蛛通过辐射出去的蛛网来获取信息,继而从中捕获到它想要的猎物,所以爬虫也被称为网页蜘蛛,当然相较蛛网而言,爬虫软件更具主动性。另外,爬虫还有一些不常用的名字,像蚂蚁/模拟程序/蠕虫。
爬虫的工作流程大致如下:
通常,爬取网页数据时,只需要2个步骤:
打开网页→将具体的数据从网页中复制并导出到表格或资源库中。
简单来说就是,抓取和复制。爬虫的君子协议
搜索引擎的爬虫是善意的,可以检索你的一切信息,并提供给其他用户访问,为此它们还专门定义了robots.txt文件,作为君子协议。
Robots协议(爬虫协议)的全称是"网络爬虫排除标准"(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。该协议是国际互联网界通行的道德规范,虽然没有写入法律,但是每一个爬虫都应该遵守这项协议。
以淘宝网的robots.txt为例,
以 Allow 项的值开头的 URL 是允许 robot 访问的。例如,Allow:/article 允许百度爬虫引擎访问 /article.htm、/article/http://12345.com 等。
以 Disallow 项为开头的链接是不允许百度爬虫引擎访问的。例如,Disallow:/product/ 不允许百度爬虫引擎访问 /product/http://12345.com 等。
最后一行,Disallow:/ 禁止百度爬虫访问除了 Allow 规定页面外的其他所有页面。
所以你是不能从百度上搜索到淘宝内部的产品信息的。
君子协议虽好,然而事情很快就被一些人破坏了,于是就有了反爬虫。爬虫与反爬虫
爬虫与反爬虫是"矛"与"盾"的攻守关系,有了爬虫自然也就有了反爬虫。
一些企业为了保证服务器的正常运转,降低服务器的运转压力与成本,不得不使出各种各样的手段来阻止爬虫工程师毫无节制地向服务器索取资源,这种行为我们称之为反爬虫。
在爬虫与反爬虫的较量上,一些反爬手段常常会让人津津乐道,比如,文本混淆反爬虫、动态渲染反爬虫、信息校验反爬虫、代码混淆反爬虫……等等。
反爬虫技术是如何对爬虫进行防御的,其实现原理是什么?以下就以信息校验反爬为例,请《鹿鼎记》的韦香主给大家做一下演示。
假设天地会赤火堂香主派人从京城前往扬州将一封非常重要的密函交给青木堂香主韦小宝,我们可以将这件事抽象为下图:
这件事的核心是「帮派成员-甲将重要密函交给帮派成员-乙」。假设甲、乙双方互不相识亦从未有过会面,那「帮派成员-甲」如何判断密函交给了「帮派成员-乙」,而不是给错人——给了其他「帮派成员-丁」呢?
在历史实践中肯定吃过这样的亏,遂天地会采用了接头暗号这种方式来确保甲、乙双方是同一帮派成员,这才有了:
地镇高岗,一派溪山千古秀;
门朝大海,三河合水万年流。
暗号只有帮派成员才知道,且不可外泄。甲、乙双方见面时由「帮派成员-甲」说出「地镇高岗,一派溪山千古秀」,「帮派成员-乙」听到后必须接下一句「门朝大海,三河合水万年流」。如果「帮派成员-乙」不知道下一句是什么,或者胡说一气,那么「帮派成员-甲」就可以判定他不是接头人,而是冒充的。
同样的,「帮派成员-乙」要听到帮派成员-甲说出「地镇高岗,一派溪山千古秀」。否则「帮派成员-甲」就是冒充的,很有可能会将假的密函交给青木堂韦小宝。
天地会接头人互相传递消息(密函)很像是我们在开发 WEB 应用时的 Client 和 Server,抽象地看起来像这样:
那么问题来了,Client 和 Server 之间需不需要天地会这样的暗号呢?
答案是需要!
Client 就像「帮派成员-甲」,Server 就像「帮派成员-乙」,而他们的密函很有可能会被其他「帮派成员-丁」拿走或伪造。既然天地会有接头暗号,那么 Client 和 Server 之间用什么来保障传递消息是第一手发出,而不是被拦截伪造的呢?
没错,签名验证!
签名验证是目前 IT 技术领域应用广泛的 API 接口数据保护方式之一,它能够有效防止消息接收端将被篡改或伪造的消息当作正常消息处理。
要注意的是,它的作用是防止消息接收端将被篡改或伪造的消息当作正常消息处理,而不是防止消息接受端接收假消息,事实上接口在收到消息的那一刻无法判断消息的真假。这一点非常重要,千万不要混淆了。
假设 Client 要将「下个月 5 号刺杀鳌拜」这封重要密函交给 Server,抽象图如下:
这时候如果发生冒充事件,会带来什么影响:
其他「帮派成员-丁」从 Client 那里获得消息后进行了伪造,将刺杀鳌拜的时间从 5 号改为 6号,导致 Server 收到的刺杀时间是 6 号。这么一来,里应外合刺杀鳌拜的事就会变成一方延迟动手,这次谋划已久的刺杀行动大概率会失败,而且会造成不小的损失。
我们使用签名验证来改善这个消息传递和验证的事。这里可以简单将签名验证理解为在原消息的基础上进行一定规则的运算和加密,最终将加密结果放到消息中一并发送,消息接收者拿到消息后按照相同的规则进行运算和加密,将自己运算得到的加密值和传递过来的加密值进行比对,如果两值相同则代表消息没有被拦截伪造,反之可以判定消息被拦截伪造。
签名验证被广泛应用,例如下载操作系统镜像文件时官方网站会提供文件的 MD5 值、阿里巴巴/腾讯/华为等企业对外开放的接口中鉴权部分的 sign 值等。
以上反爬方法选自《Python3 反爬虫原理与绕过实战》
《Python 3 反爬虫原理与绕过实战》 韦世东 著
这本书是爬虫领域第一本专门介绍反爬虫的书,被誉为爬虫工程师不可错过的"武功秘籍",腾讯、马蜂窝工程师倾力推荐。
知其然,知其所以然,文武兼备,本书从攻防两个角度进行解读,描述了爬虫技术与反爬虫技术的对抗过程,并详细介绍了这其中的原理和具体实现方法。
从本书中你将了解到以上文中提到的签名验证以及文本混淆、动态渲染、加密解密、代码混淆和行为验证码等反爬虫技术的成因和绕过方法。
爬虫技术是一把双刃剑,希望大家可以将学到的技术用于防护,提高应用防护等级,以剑养剑,攻守兼备才能够在技术的江湖上任逍遥~写在最后
爬虫本身并未违反法律。但程序运行过程中可能对他人经营网站造成破坏,爬取的数据有可能涉及隐私或机密,数据本身也可能产生法律纠纷。
登徒子是什么意思(古人所云的登徒子是什么)登徒子是什么意思(古人所云的登徒子是什么)登徒子,在古代是好色之人的代称,和现代社会的色狼差不多意思。然而,登徒子这一称呼的来历却要追溯到遥远的战国时代,在一场闹剧中诞生出了这个词
登徒子是什么意思(登徒子是什么意思百度)登徒子是什么意思(登徒子是什么意思百度)节目,咱们要给一位老实人平个反。为啥呢?人家是守着糟糠之妻不离不弃,能接近君主,地位也算高,但不尽身边美色。三妻四妾的时代,唯有自个老婆孩子
落红不是无情物的红是什么意思(杜牧的江南春)落红不是无情物的红是什么意思(杜牧的江南春)落红不是无情物,化作春泥更护花。今天是2021年2月4日,我偶然在腊梅树下,发现落在地上的,几朵腊梅花,就突然想起了这句诗。花朵以红色居
fancl卸妆油怎么用(fancl卸妆油使用方法)fancl卸妆油怎么用(fancl卸妆油使用方法)日常生活中,如果卸妆不干净那就等同于毁容!FANCL卸妆油是一款无添加,无防腐剂无色素无香料无酒精被多数人认可的品牌之一。那么fa
卸妆油的使用方法(怎样正确使用卸妆油)卸妆油的使用方法(怎样正确使用卸妆油)卸妆的时候,为了让脸上的彩妆和其他的一些难以清除的化妆品清洁掉,所以就会使用专门的卸妆产品,其中最常见的一种卸妆产品就是卸妆油,但你真的用对卸
科普下2019届中考生大事件计划表关于到现在科普下2019届中考生大事件计划表这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道科普下2019届中考生大事件计
成人高考与普通高考区别(成人高考的条件与要求)成人高考与普通高考区别(成人高考的条件与要求)2109031703才聚人才成人高考是成人高等学校招生统一考试的简称,是为中国各类成人高等学校选拔合格的毕业生以进入更高层次学历教育的
股市故事(炒股故事集)股市故事(炒股故事集)今天和大家讲的这个故事,牵扯了太多游资以及豪门机构中的恩怨,并且这个标的一度成为资本市场最亮的仔,在炒作二胎概念的时候,他以一己之力带领整个二胎概念攻城略地,
包装盒展开图(40个创意包装盒设计)包装盒展开图(40个创意包装盒设计)个印刷包装行业,彩盒包装是相对比较复杂的品类,因为设计结构形状工艺不同,往往很多东西没有标准化流程。今天,小编为大家整理了常见的彩盒包装单纸盒的
糖果包装盒(定做纸盒包装盒)糖果包装盒(定做纸盒包装盒)今天是六一国际儿童节,小朋友们最喜爱的节日。在这个欢快的日子里,包装盒定做厂家来晒几款有趣食品包装盒,让小朋友都惊叹不已,你是否想回到童年呢?这是一款新
注册公用设备工程师报考条件(设备工程师资格证报考条件)注册公用设备工程师报考条件(设备工程师资格证报考条件)凡中华人民共和国公民,遵守国家法律法规,恪守职业道德,并具备相应专业教育和职业实践条件者,均可申请参加注册公用设备工程师执业资
净资产公式(净资产公式计算公式)净资产公式(净资产公式计算公式)何提高投资回报率是一个非常重要的话题,可以用一个指标把企业的人财物产供销运营全部统一起来了。在这里,我也将对这个问题进行一个简单的讲解。01hr三个
固定资产周转率(如何分析固定资产)固定资产周转率(如何分析固定资产)固定资产是大部分企业生产经营必不可少的一部分,为什么是大部分而不是全部呢?因为有些互联网企业不需要它,固定资产到底是什么怎么分析以及有哪些判别指标
科普下盖余所至比好游者尚不能十一翻译及句式关于到现在盖余所至比好游者尚不能十一翻译及句式这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道盖余所至比好游者尚不能十一翻
知识盖竹柏影也是什么句式关于到现在盖竹柏影也是什么句式这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道盖竹柏影也是什么句式小编也是到网上收集了一些与盖竹
知识将军战河北是什么句式关于到现在将军战河北是什么句式这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道将军战河北是什么句式小编也是到网上收集了一些与将军
知识君子性非异也善假于物也是什么句式关于到现在君子性非异也善假于物也是什么句式这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道君子性非异也善假于物也是什么句式小编也
儿童舞台妆(儿童舞台妆图片)儿童舞台妆(儿童舞台妆图片)说到童年照,美人痣和腮红一定是经久不衰的标配。六一将至,幼儿园小学的主题表演也陆续开启。在P图横行小学生都要敷面膜的精致猪猪娃盛行的时代,童年化妆照是否
舞台妆(儿童舞台妆图片)舞台妆(儿童舞台妆图片)团素颜大曝光!和舞台妆感觉不一样原创202107181134蛋酒娱乐很多女团成员或者solo平时在舞台上妆容精致,艳光四射!平时她们也不介意把自己的素颜照分
出售固定资产分录(固定资产出售怎么做账)出售固定资产分录(固定资产出售怎么做账)202108080911初级会计学堂公司汽车转卖一般计入固定资产清理,公司汽车转卖对于公司来说也很正常。那么你知道公司汽车转卖的业务处理有哪
应付账款贷方(应付账款明细账图片)应付账款贷方(应付账款明细账图片)暂估也是指本月存货已经入库,但采购发票尚未收到,不能确定存货的入库成本。月底时进行暂估入账,形成暂估凭证。对于上月暂估成本次月收到发票的业务,应怎
加权平均净资产收益率(加权平均净资产收益率是什么意思)加权平均净资产收益率(加权平均净资产收益率是什么意思)作为股东,最关心的就莫过于我投资的钱有没有升值?是不是我投资的钱能使我得到更高的利润回报?或者想知道我准备投资这个公司,他会不