爬虫是构建大数据平台的基础。它负责抓取网页信息,对网页进行识别、分类和过滤。我们熟悉的电子商务、搜索、新闻以及各大门户网站,每天都有强大的爬虫集群在高负载下运行。他们“和谐”地聚集在一起,从新闻和新闻中学习。他们尽最大努力搜索和优化网络信息,各大研究机构尽最大努力建立数据集。
然而,各大网站都不给爬行者喘息的机会,让他们为所欲为。毕竟内容的价值在任何时候都是显而易见的,所以爬行者和反爬行者之间有混战。
在与爬行者对爬行者的攻防战中,没有一刻可以放松。为了制定反爬行网站的反爬行策略,你必须根据爬虫的特点选择一个计划。爬虫的特点是什么?脚本+自动化。因此,反对攀登的破坏性动作不超过两种:
首先,非脚本访问=》浏览器真实性检测。
第二,非自动访问=>访问用户的真实性检测。
由于其运行环境和工作原理,浏览器会带来一些独特的属性:有协议协商头和可执行的JavaScript代码段。然后基于浏览器的真实性检测,构建了第一个抵抗爬行者的堡垒。
反爬虫党在活动之初就率先提供了用户代理、内容类型、应用程序、我接受编码、接受语言、x-forward-for、referer等头格。第一批标题与普通浏览器不同的爬虫一个接一个地被触发,瞬间死亡。然而,这种爬行动物并不是吃素的。他们用一个巧妙的诡计来逃避真相,并通过锻造计价器头迅速突破了防线。
反爬虫一点也不惊慌,在html中添加了一个JavaScript脚本。因为他的浏览器提前知道地雷的位置,所以可以安全地绕过它,而不影响正常的网页显示。然而,爬行者并不知道,一个接一个地被抓,被打死或受伤。直到大杀手Node.js出现之前,JavaScript都可以直接执行。爬行者终于反击了,又赢了一场胜利。
反爬行者没有考虑其他问题,他们用迷宫般的“单页应用程序”防御了他们的堡垒。然而,由于单页面应用的巧妙结构,爬虫使出了浑身解数,却无法分析出任何数据,一筹莫展。单页应用程序在战场上占据主导地位。反登山者开始了一场片面的屠杀,爬虫的士气被摧毁了。
终于,这场战斗的终结者出现了。他是无头铬技术。新技术一出现,爬虫军的武库就焕然一新:硒元素、傀儡大师、幻影JS、卡斯珀JS等重型攻城杀手不断取得成绩,反爬行者则是拒人于千里之外。爬虫军终于在第一场战役中取得了胜利。
得益于无头Chrome的出现,反爬虫在浏览器识别战中立于不败之地。但胜败乃兵家常事。东方不亮西方亮。在数据防御的关键时刻,防爬虫意外地发现了一个现象。虽然浏览器很难识别,但人性是贪婪的。人类可以做很多脚本做不到的事情。即使是人的行为也有固定的规则。就这样,反爬队员们苦干了很久,终于再次踏上了战场。
第一道防线直接指向爬虫的关键——贪婪(访问频率)。这种每秒10次的高频访问请求怎么会发生在一个人身上呢?爬虫们不得不大幅度降低攻击频率,反爬虫们终于松了一口气。
第二道防线的目标是爬虫的痛点-懒惰(固定IP)。最近,同一个IP发出了数百个请求,因为如此,爬虫必须付出巨大的代价来购买代理IP。即便如此,反爬虫仍然可以通过阻止公共IP地址来关闭大量的代理IP地址。经过反爬队的精心操作,敌人的攻势逐渐有效地被削弱了。