你好!我们公司长期以来一直致力于防御DDoS攻击,在此过程中,我能够足够详细地了解相关领域-研究创建机器人的原理以及如何使用它们。特别是网络抓取,即使用漫游器从网络资源中大量收集公共数据。
在某个时候,这个主题让我着迷于成功使用刮擦的各种应用问题。在这里应该注意,Web抓取的“阴暗面”对我来说是最大的利益,也就是说,使用有害和不良的场景以及它可能对Web资源和与之相关的业务产生负面影响。
同时,由于我们工作的特殊性,通常是在这种(坏)情况下,我们不得不沉浸在细节中,研究有趣的细节。这些潜水的结果是,我的热情传递给了我的同事-我们实施了我们的解决方案来捕获不需要的机器人,但是我积累了足够的故事和观察,我希望对您来说很有趣。
我将谈论以下内容:
- 人们为什么互相抓挠?
- 这种刮擦的类型和迹象是什么?
- 它对目标网站有什么影响;
- 机器人的创造者使用哪些工具和技术能力进行抓取;
- 如何检测和识别不同类别的机器人;
- 如果刮板来访问您的站点该怎么做和怎么做(以及是否需要做任何事情)。
让我们从一个无害的假设情景开始-假设您是一名学生,明天早上您可以对学期论文进行辩护,没有基于材料的马匹,没有数字,没有摘录,没有引号-并且您理解了整晚您既没有时间,也没有精力,也没有手动推动整个知识库的愿望。
因此,根据老同志的建议,您将发现Python命令行并编写一个简单的脚本来接受URL作为输入,然后去那里,加载页面,解析内容,在其中找到关键字,感兴趣的块或编号,将它们添加到文件中,或者进入盘子并继续前进。
在此脚本中加载所需数量的科学出版物,在线出版物,新闻资源的地址-它可以快速遍历所有内容,从而得出结果。您只需要在其上绘制图形和图表,表格即可-第二天早上,随着获胜者的出现,您应该得到当之无愧的分数。
让我们考虑一下-在这个过程中您做某人不好吗?好吧,除非您使用正则表达式解析HTML,否则很可能不会对任何人造成任何伤害,甚至不会对您以这种方式访问的网站造成任何伤害。这是一次一次性的活动,可以称为谦虚而不起眼的活动,几乎没有人因您来了而迅速而安静地获取所需数据这一事实而遭受痛苦。
另一方面,如果一切都在第一次完成,您会再做一次吗?让我们面对现实-您很有可能会这么做,因为您节省了很多时间和资源,而且收到的数据极有可能比您原先想象的还要多。并且这不限于科学,学术或普通教育研究。
因为信息会花费金钱,而按时收集信息会花费更多金钱。这就是为什么刮people是许多人的重要收入来源的原因。这是一个受欢迎的自由职业者话题:走进去,看到一堆订单,要求您收集一些数据或编写抓取软件。也有一些商业组织为该活动进行抓取订购或提供平台,即所谓的“抓取即服务”。这样的多样性和传播是可能的,还因为刮刮本身是非法的,应受谴责的,而不是非法的。从法律的角度来看,很难发现他的错-尤其是在现在,我们将很快找出原因。
对我而言,特别令人感兴趣的是,就技术而言,没有人可以禁止您进行拼抢-这造成了一种有趣的情况,在这种情况下,路障两侧的参与者都可以在公共场所有机会讨论此事的技术和组织方面。为了在某种程度上向前发展工程思想,并在此过程中吸引越来越多的人参与。
从法律方面的角度来看,我们现在正在考虑的情况-允许刮擦,以前并不总是一样。如果我们稍微看一下与刮刮有关的众所周知的诉讼的时间顺序,我们会发现,即使在黎明之前,eBay的第一个主张就是反对从拍卖中收集数据的刮刮器,法院禁止他从事这项活动。在接下来的15年中,现状或多或少得以保留-大型公司发现刮板的影响后便赢得了针对刮板的诉讼。 Facebook和Craigslist以及其他一些公司都报告了声称对他们有利的指控。
然而,在一年前,一切突然改变了。法院发现,LinkedIn对收集用户和简历的公开个人资料的公司的主张是没有根据的,并且忽略了要求停止活动的信件和威胁。法院裁定,无论是机器人还是人类,公共数据的收集都不能成为显示该公共数据的公司提出索赔的依据。这种强有力的法律先例已经使平衡变得有利于刮板,并允许更多的人展示,展示和尝试自己在该领域的兴趣。
但是,纵观所有这些通常无害的事物,人们不应该忘记刮刮有很多负面用途-收集数据不仅用于进一步使用,而且在此过程中实现了对站点或站点背后的业务造成任何损害的想法。或尝试以某种方式丰富自己,以牺牲目标资源的用户为代价。
让我们看一些标志性的例子。
首先是从可访问此类广告的网站上抓取并复制其他人的广告:汽车,房地产,个人物品。我以加利福尼亚的一个很棒的车库为例。想象一下,我们在那里设置了一个漫游器,收集图片,收集描述,获取所有联系信息,并且相同广告在5分钟后挂在另一个焦点相似的网站上,很有可能通过它发生有利可图的交易。
如果我们在这里稍加想象,然后再思考另一端-如果不是我们的竞争对手在做这件事,而是攻击者在做那件事呢?这样的站点副本可能非常有用,例如可以要求访客预付款,或者只是提出要输入支付卡详细信息。您可以自己想象事件的进一步发展。
刮刮的另一个有趣情况是购买了限量供应的物品。耐克,彪马和锐步等运动鞋制造商会定期推出限量版运动鞋等。签名系列-被收藏家追捕,限时发售。在买家面前,机器人开始跑入鞋店网站并提高整个流通量,然后这些运动鞋以完全不同的价格飘向灰色市场。一次,这激怒了分发它们的供应商和零售商。 7年来,他们一直在与刮板等作斗争。运动鞋机器人在技术和管理方法上都取得了不同的成功。
您可能已经听说过一些故事,当您在网上购物时需要亲自去一家运动鞋商店逛逛,或者关于一个价值10万美元的带有运动鞋的蜜罐,而机器人却毫不留情地买了它,之后它的主人抓住了头-所有这些故事都处于这种趋势。
另一个类似的情况是在线商店中的库存耗尽。它与上一个相似,但是实际上没有购买任何物品。有一个在线商店,入站机器人将某些商品以入库数量作为可用数量耙入购物篮。结果,试图购买产品的合法用户会收到一条消息,该消息说该产品缺货,沮丧地摸了摸脑袋,然后去了另一家商店。然后,机器人自动将收集的篮子放下,将货物退回水池-需要的人来订购。如果这是小恶作剧和流氓行为的情况,或者不来,也不会下令。由此可见,即使此类活动不会对在线业务造成直接的财务损失,也至少会严重破坏业务指标,分析师将关注的重点。诸如转换,出勤,产品需求,平均购物车检查等参数-所有这些参数都会被机器人与这些物品有关的行为严重污染。在将这些指标应用到工作中之前,必须仔细仔细地清除刮刀的影响。
除此业务重点外,刮板的工作还会产生相当明显的技术效果-通常是在主动且密集地进行刮板时。
我们的一位客户的例子之一。刮板到达带有参数化搜索的位置,这是有问题的结构后端中最困难的操作之一。抓取工具必须经过大量搜索查询,到该位置的200 RPS中,他获得了将近700的信息。这部分基础架构负载很重,导致其他合法用户的服务质量下降,响应时间缩短,502和503下降了。和错误。通常,刮板根本不在乎,他坐着做工作,而其他人则疯狂地刷新了浏览器页面。
从这一点很明显,这种活动很可能被归类为一种应用的DDoS攻击-而且经常如此。特别是如果在线商店不是很大,它就没有在性能和位置方面反复保留的基础结构。如果您没有完全投入资源,这种活动可能很好-对于刮板来说不是非常有利可图,因为在这种情况下,他将无法接收其数据-然后会使所有其他用户感到不安。
但是,除了DDoS之外,抓取还具有有趣的网络犯罪邻居。例如,暴力登录和密码使用类似的技术基础,即使用相同的脚本,可以着重于速度和性能来完成。对于凭据填充,使用从某处废弃的用户数据,并将其推送到表单字段中。好吧,复制内容并将其发布到类似网站上的示例是一项认真的准备工作,目的是避免网络钓鱼链接并吸引毫无戒心的购买者。
为了从技术角度了解刮削的不同变体如何影响资源,让我们尝试计算各个因素对这项任务的贡献。让我们做一些算术。
假设我们有一些需要收集的数据。我们有一项任务或订单要检索10,000,000行商品,例如价格标签或报价。在左侧,我们有一个时间预算,因为明天或一周之内,客户将不再需要此数据-该数据将过时,因此我们将不得不再次收集该数据。因此,您需要保持在一定的时间范围内,并使用自己的资源以最佳方式进行操作。我们有许多服务器-它们所位于的机器和IP地址,我们将从中获得我们感兴趣的资源。我们假装有许多用户实例-要说服在线商店或某些公共基地这些人是不同的人或不同的计算机来获取某些数据,以使这些谁来分析日志,没有任何怀疑。我们从一个这样的实例获得了一些性能和请求率。
显然,在一个简单的案例中-一台主机,一名学生和一台笔记本电脑,穿过《华盛顿邮报》,将发出大量具有相同符号和参数的请求。如果有很多这样的请求,则在日志中将非常明显-这意味着在这种情况下,很容易通过IP地址查找和禁止。
随着抓取基础架构变得越来越复杂,出现了更多的IP地址,因此使用了代理服务器,包括房屋代理服务器-稍后再进行介绍。然后,我们开始在每台计算机上进行多重实例化-替换查询参数和代表我们的特征的符号,以使整个记录涂抹在日志中,而不会显得那么明显。
如果我们朝着相同的方向前进,那么我们就有机会在相同等式的框架内降低来自每个这样的实例的请求强度-使它们变得更罕见,更有效地轮换它们,以使来自相同用户的请求不会最终出现在附近的日志中。不会引起怀疑,并且与最终(合法)用户相似。
好吧,这是一个极端的情况-我们曾经在实践中遇到过这样的情况,当刮板从大量IP地址来到客户那里,这些IP地址在这些地址后面具有完全不同的用户属性时,每个这样的实例仅发出一个内容请求。我将GET转到所需的产品页面,将其解析并离开-再也没有出现。这种情况很少见,因为它们需要更多的资源(花费金钱)才能在相同的时间内使用。但与此同时,要追踪它们并了解有人甚至来抓取它们变得更加困难。行为分析之类的流量研究工具-为特定用户建立行为模式-变得非常复杂。毕竟,如果没有行为,您该如何进行行为分析?没有用户操作的历史记录,他以前从未出现过,而且有趣的是,自那时以来他再也没有来过。在这种情况下,如果我们不尝试在第一个请求时做某事,那么它将接收其数据并离开,而我们将一无所有-我们还没有解决在这里对抗刮擦的问题。因此,唯一的机会是在第一个请求上就猜测我们要在网站上看到的错误人物来了,给他一个错误,或者确保他没有收到他的数据。我们希望在网站上看到谁,并给他一个错误,或者确保他没有收到他的数据。我们想在网站上看到谁,并给他一个错误,或者确保他没有收到他的数据。
为了了解如何在构建刮板的过程中克服这种复杂性,让我们看一下机器人创建者最常使用的工具库,以及可以分为哪些类别。
大多数读者熟悉的最简单的主要类别是脚本抓取,即使用足够简单的脚本来解决相对复杂的问题。
这个类别也许是最受欢迎的,并且有据可查。甚至很难推荐确切的内容,因为实际上有很多材料。使用这种方法已经编写了很多书籍,有很多文章和出版物-原则上,花5/4/3/2分钟(取决于材料作者的无礼)来解析您的第一个站点就足够了。对于许多开始抓取Web的人来说,这是合乎逻辑的第一步。这种活动的“入门包”通常是Python,外加一个可以灵活地发出请求并更改其参数(例如请求或urllib2)的库。还有某种HTML解析器,通常是Beautiful Soup。还有一个选项可以使用专门为抓取而创建的库,例如scrapy,它包括所有这些功能以及易于使用的界面。
借助简单的技巧,即使您无法以机器,IP地址和不同的硬件平台扩展您的活动,您也可以假装成为不同的设备,不同的用户。
为了消除检查服务器端收集数据日志的人的气味,只需替换感兴趣的参数即可,这并不困难,而且时间不长。让我们来看一个用于nginx的自定义日志格式的示例-我们记录IP地址,TLS信息以及我们感兴趣的标头。当然,这里不是通常收集的所有内容,而是我们需要此限制作为示例-查看子集,仅因为其他所有内容都更容易“抛出”。
为了不被地址所禁止,我们将使用在国外被称为住宅代理,即在提供商的家庭网络中租用(或入侵)机器的代理。显然,通过禁止使用这样的IP地址,就有机会禁止居住在这些房屋中的一定数量的用户-而且您的站点很可能会有访问者,因此有时这样做对您来说更昂贵。
更改TLS信息也不难-选择流行的浏览器密码套件,然后选择自己喜欢的一种-最常见,或者定期旋转它们以将自己呈现为不同的设备。
至于标题,您可以通过一些研究来将引荐网址设置为被抓取的站点喜欢的任何内容,然后我们从Chrome或Firefox中获取用户代理,因此它与成千上万的其他用户没有任何区别。
然后,使用这些参数,您可以假装成不同的设备并继续抓取,而不必担心以肉眼在原木中行走。对于武装人员而言,这仍然有些困难,因为这些简单的技巧被相同的,相当简单的对策所抵消。
相互比较请求参数,标头,IP地址以及将IP地址与公知参数进行比较,可以捕获最傲慢的爬虫。一个简单的例子-一个搜索机器人来了,但由于某种原因,它的IP并非来自搜索引擎的网络,而是来自某个云提供商。甚至在描述Googlebot的页面上的Google本身也建议进行反向查找DNS记录,以确保该bot实际上来自google.com或其他有效的Google资源。
有许多这样的检查,大多数情况下,它们是为那些不费力地用绒毛代替某些刮板的刮板而设计的。对于更复杂的情况,有更可靠,更重的方法,例如,在此bot上滑动Javascript。很明显,在这种情况下,斗争已经是不平等的了-您的Python脚本将无法执行和解释JS代码。但是脚本的作者可以做到这一点-如果该机器人的作者有足够的时间,欲望,资源和技能去在浏览器中查看您的Java脚本正在做什么。
检查的实质是将脚本集成到页面中,这不仅对脚本执行很重要,而且还显示出某种结果,这通常对客户端很重要,这通常是在客户端获得足够睡眠之前将POST发送回服务器内容,页面本身就会加载。因此,如果机器人的作者解决了您的谜语,并将正确的答案硬编码到他的Python脚本中,或者例如,了解了他需要在哪里解析脚本行以寻找必要的参数和被调用的方法,并自己计算出答案,他就能圈出您在你的手指周围。这是一个例子。
我认为有些听众会认识到这段javascript-这是世界上最大的云提供商之一,在访问请求的页面之前,它曾经经历过的检查非常紧凑,非常简单,同时,在没有学习的情况下,它很容易该网站没有突破。同时,经过一点努力,我们可以要求页面搜索我们感兴趣的JS方法,从中调用它们,从它们开始计数,找到应该计算出的我们感兴趣的值,并将计算结果粘贴到代码中。在那之后,不要因为延迟而忘记睡几秒钟,瞧。
我们到达页面,然后我们可以解析我们需要的东西,只花费比创建我们自己的刮板更多的资源。也就是说,从使用资源的角度来看,我们不需要任何其他解决此类问题的方法。显然,军备竞赛就此而言-编写JS挑战并解析它们并通过第三方工具规避它们-仅受机器人作者和支票作者的时间,欲望和技能的限制。这场比赛可以持续相当长的时间,但是在某些时候,大多数刮板车都变得毫无趣味,因为有更多有趣的选择可以应对。当您可以抓住并启动浏览器时,为什么要坐在Python中解析JS代码?
是的,我主要是在谈论无头浏览器,因为该工具最初是为测试和问答而创建的,目前已证明非常适合于网络抓取任务。
我们不会详细介绍无头浏览器,我想大多数听众已经对它们有所了解。自动化无头浏览器的Orchestrators在过去10年中经历了相当快的发展。最初,在PhantomJS以及Selenium 2.0和Selenium WebDriver的第一个版本发布时,在自动机下运行的无头浏览器与现场用户完全没有区别。但是,随着时间的流逝以及诸如无头Chrome的Puppeteer之类工具的出现以及现在由Microsoft创建的绅士-Playwright,它与Puppeteer的功能相同,不仅适用于Chrome,而且适用于所有流行浏览器的版本,它们越来越多使无头浏览器更接近于真实浏览器如何通过编排的帮助来制作它们,这些编排具有与健康人的浏览器类似的行为,并且具有不同的符号和特性。
为了在人们所坐的普通浏览器的背景下处理无意义的识别,通常使用相同的javascript检查,但更深入,更详细,并收集大量参数。收集的结果将发送回保护工具或刮板要从中收集数据的站点。这项技术称为指纹识别,因为它可以收集浏览器和运行它的设备的真实数字指纹。
JS在进行指纹识别时要检查的东西很多-它们可以分为一些条件块,在每个条件块中都可以不断进行挖掘。确实有很多属性,其中一些很容易隐藏,有些不那么容易。在这里,与前面的示例一样,很大程度上取决于刮板如何细致地完成隐藏无头的突出“尾巴”的任务。浏览器中有对象的属性,编排器默认会替换它们,还有属性(navigator.webdriver),该属性在headless中设置,但同时在普通浏览器中不存在。它可以隐藏,可以通过检查某些方法来检测是否尝试隐藏-这些检查的检查内容也可以被隐藏,并将伪造的输出放到打印方法的函数中,例如,它可以无限期地持续下去。
通常,另一检查块负责研究窗口和屏幕参数,按照定义,这些参数在无头浏览器中是不存在的:检查坐标,检查大小,未绘制的残破图像的大小是多少。有很多细微差别,一个非常了解浏览器设备的人可以预见并在每个浏览器上得出一个合理的(但不是真实的)结论,这些结论将通过指纹检查传给进行分析的服务器。例如,在通过WebGL和Canvas渲染2D和3D图片的情况下,您可以完全准备好整个输出,进行伪造,以一种方法发布它,并使某人相信确实绘制了某些东西。
还有更多棘手的检查不会同时发生,但可以说JS代码将在页面上旋转一定的秒数,或者它会不断挂起并将一些信息从浏览器传输到服务器。例如,跟踪光标移动的位置和速度-如果漫游器仅在需要的位置单击并以光速跟踪链接,则可以通过光标的移动来跟踪,如果漫游器的作者不打算编写某种类似于人的,平滑的,偏移量。
而且有一个丛林-这些是对象模型的特定于版本的参数和属性,这些参数和属性在浏览器之间,版本之间是特定的。为了使这些检查正常进行,并且不会伪造(例如,对于使用某些旧浏览器的实时用户),您需要考虑很多因素。首先,您需要跟上新版本的发布,修改您的支票,以便它们考虑前端的事务状态。有必要保持向后兼容性,以便有人可以在非典型浏览器上进入受此类检查保护的站点,同时又不会像僵尸程序和其他许多程序那样被捕获。
这是一项艰苦而又相当复杂的工作-这些事情通常是由提供机器人检测即服务的公司来完成的,而依靠自己的资源独自进行这项工作并不是时间和金钱上的非常有利可图的投资。
但是要做的是-无论我们如何努力,我们都需要抓取该网站,并挂满一堆这样的无头检查,并用伪装者计算一些无头铬。
一个小的抒情题外话-对于那些有兴趣更详细地了解支票的历史和演变的人,例如对于无头的Chrome,两位作者之间有一个有趣的书信对决。我对一位作者了解不多,另一位叫Antoine Vastel,他是来自法国的年轻人,他维护着一个有关机器人及其检测,支票混淆以及许多其他有趣事物的博客。因此,他们及其同行已经争论了两年是否可以检测无头Chrome。
我们将继续前进,了解如果我们无法通过无头检查,该怎么办。
这意味着我们将不会使用无头,而是会使用大型的实际浏览器来绘制窗口和各种视觉元素。 Puppeteer和Playwright之类的工具允许(而不是无头的)使用已渲染的屏幕启动浏览器,从此处读取用户输入,获取屏幕截图,以及没有可视组件的浏览器无法使用的更多功能。
在这种情况下,除了绕过无头检查之外,您还可以应对以下问题-当我们有一些狡猾的网站构建者时,隐藏图片中的文字,使其不可见,而无需进行其他单击或其他操作和移动。他们隐藏了一些本应隐藏且无头的元素:他们不知道该元素现在不应该显示在屏幕上,而是碰到它。我们可以简单地在浏览器中绘制此图片,将屏幕截图提供给OCR,在输出中获取文本并使用它。是的,这更困难,开发成本更高,需要更长的时间并消耗更多的资源。但是有些刮板以这种方式工作,并且以速度和性能为代价,它们以这种方式收集数据。
“验证码呢?” - 你问。毕竟,没有一些更复杂的东西就无法解决OCR(高级)验证码。有一个简单的答案-如果我们不能自动解决验证码,为什么不使用人工呢?如果您可以将机器人与人类结合起来以实现目标,那么为什么还要将它们与机器人分开呢?
有一些服务可以让您发送验证码,该验证码由坐在屏幕前的人来解决,通过API,您可以获取验证码的答案,例如将cookie插入请求中,然后将其发布,然后自动处理来自此站点的信息...每次弹出验证码时,我们都会拉出apishka,获得针对该验证码的答案-在下一个问题中滑入并继续。
显然,这也要花费一分钱-验证码解决方案是批量购买的。但是,如果我们的数据比所有这些技巧的成本都昂贵,那么为什么不呢?
现在,我们已经研究了所有这些工具向复杂性的发展,让我们考虑如果在我们的在线资源(在线商店,公共知识库等)上发生抓取该怎么办。
首先要做的是找到刮板。我将告诉您:并非所有公开场合都会带来负面影响,正如我们在报告开始时已经考虑的那样。通常,更原始的方法,即没有速率限制,不限制请求速度的相同脚本,比某些复杂,复杂的,笨拙的浏览器仅凭一个请求抓取的危害更大(如果不能通过保护措施阻止)。在一小时内,一开始仍然需要在日志中找到它。
因此,首先,您需要了解我们被淘汰了-查看通常受此活动影响的含义。我们现在正在谈论技术参数和业务指标。这些都是您可以在Grafana中看到的,随着时间的推移,您会看到负载和流量,各种突发事件和异常情况。如果您不使用安全工具,也可以手动执行此操作,但是知道如何过滤流量,检测各种事件并使它们与某些事件匹配的人员可以更可靠地完成此操作。因为除了分析事实后的日志以及分析每个单独的请求外,这里还可以使用一些累积的知识库保护手段,因为这种保护手段已经看到了刮板在此资源或类似资源上的作用,并且您可以以某种方式将其与另一种语言进行比较-语音关于相关性分析。
至于业务指标,我们已经使用脚本示例进行了回顾,该脚本示例会导致直接或间接的财务损失。如果可以快速跟踪这些参数的动态情况,则可能会再次注意到抓取-然后,如果您自己解决了此问题,则欢迎访问后端日志。
至于用于防止主动抓取的保护手段,我们已经考虑了大多数方法,讨论了不同类型的机器人。流量分析将帮助我们从最简单的情况开始,行为分析将帮助我们跟踪诸如模糊(身份替换)和多实例脚本之类的事物。针对更复杂的事物,我们将收集数字印刷品。而且,当然,我们将CAPTCHA作为国王的最后论据-如果我们不能以某种方式在之前的问题上发现一个狡猾的机器人,那么很可能会偶然发现CAPTCHA,对吗?
好吧,这里有点复杂。事实是,随着支票的复杂性和复杂性的增加,支票变得越来越昂贵,主要是针对客户端。如果可以绝对无创地进行流量分析和随后的参数与一些历史值的比较,而在原则上不影响页面加载时间和在线资源的速度,那么指纹识别(如果足够大并且可以在浏览器端进行数百次不同的检查)可以严重影响下载速度。在跟随链接的过程中,很少有人喜欢看带有支票的页面。
对于CAPTCHA,这是最粗糙,最具侵入性的方法。这确实会使用户或购买者远离资源。没有人喜欢验证码,他们不会因为美好的生活而转向验证码-当其他所有选项都无效时,他们会选择验证码。这里还有一个更有趣的悖论,这些方法的这种应用存在一些问题。事实是,一个或另一个叠加中的大多数保护手段都使用了所有这些可能性,这取决于它们所遇到的僵尸活动的复杂程度。如果我们的用户设法通过了流量分析器,如果他的行为与用户的行为没有不同,如果他的指纹看起来像是一个有效的浏览器,那么他将克服所有这些检查,最后我们向他显示一个验证码-事实证明这是一个人……这可能是非常可悲的...结果,验证码开始不再向我们想要切断的恶意机器人展示,而是向相当一部分用户展示-可能对此感到生气并且下次可能不会来临,不购买该资源上的东西,不参与其进一步开发的人。
考虑所有这些因素-如果出现刮擦,我们最终应该怎么做,我们进行了研究,并能够以某种方式评估其对我们的业务和技术指标的影响?一方面,按照定义与收集公共数据,机器或人员进行刮擦是没有道理的-您自己同意,此数据可用于任何来自Internet的用户。解决“不合原则”限制抓取的问题-也就是说,由于先进的和有才华的机器人来了,您尝试禁止所有这些-这意味着您需要花费大量资源来保护自己,或者使用昂贵且非常复杂的解决方案,自托管或基于云的“最大安全模式”,并且在追求每个单独的漫游器时,冒着使此类东西失去有效用户份额的风险,例如繁重的javascript检查,例如每第三个转换弹出的验证码。所有这些都会使您的网站变得面目全非,从而吸引访问者。
如果要使用保护工具,则需要查找那些可以进行更改的工具,并以某种方式在要从资源使用中切断刮板的比例(从简单到复杂)与事实上的Web速度之间找到平衡点-资源。因为,正如我们已经看到的,有些检查是简单而快速地完成的,而有些检查既困难又费时-同时,对于游客本身也很明显。因此,能够在一个通用平台上应用和改变这些对策的解决方案将使您更快更好地实现这种平衡。
好吧,在研究所有这些问题时,也可以使用所谓的“正确思维方式”,这是非常重要的。必须记住,不是公共数据本身需要保护,所有需要它的人迟早都会看到它。用户体验需要得到保护:客户的用户体验,客户和用户体验,与刮板不同,它们可以为您带来收入。如果您精通这个非常有趣的领域,可以保留并增加它。
非常感谢您的关注!