【.comExpress翻译】人们有时会错误地将术语“webscraping”和“webcrawling”用作同义词。虽然它们密切相关,但它们是不同的动作,需要适当地描述——至少这样你可以在某个时间点知道哪个最适合你的需求,这样你就可以理解其中的区别。让我们深入了解这两个网络操作的本质。什么是网页抓取?顾名思义,网络抓取是从网络中提取或清理信息的行为。无论目标数据如何,网络抓取都可以使用脚本语言和专门的抓取工具自动完成,或者通过复制和粘贴手动完成。当然,手动网页抓取是不切实际的。虽然编写抓取脚本可能会有所帮助,但它可能成本高昂且技术性强。但是,使用自动化的无代码网络抓取工具可以使该过程变得简单快捷,而不会造成巨大损失。为什么要抓取网页?以百万计仅在互联网上产生的数据量就有64.2泽字节。该公司预测,到2025年,这一价值将增长179%以上。大型组织和个人已将互联网上可用的数据用于包括但不限于:预测营销、股价预测、销售预测、竞争监测等目的.有了这些应用程序,数据显然是当今许多企业增长的驱动力。此外,随着世界越来越倾向于自动化,数据驱动的机器正在出现。这些机器虽然准确,但数据是使用机器学习技术获取的。机器学习的严格规则要求算法随着时间的推移从大量数据中学习模式。因此,在没有数据的情况下训练机器可能是不可能的。尽管如此,商业网站上的电子图像、文本、视频和产品都是推动人工智能世界发展的有价值的信息。因此,现有公司、初创企业和个人转向网络以收集尽可能多的信息的原因并不牵强。这意味着在当今的商业世界中,您拥有的数据越多,您就越有可能领先于竞争对手。因此,网络抓取变得必不可少。网络爬虫是如何工作的?Web爬虫使用超文本传输??协议(HTTP)使用GET方法从网页请求数据。在大多数情况下,一旦收到来自网页的有效响应,爬虫就会从客户端收集更新的内容。它通过将自己附加到目标数据特定的HTML标签来实现。但是,有许多网络抓取方法。例如,一个抓取机器人可以进化为直接从另一个网站的数据库请求数据,从而从提供商的服务器获取实时更新的内容。这种从爬虫到另一个数据库的请求通常需要提供数据的网站提供应用程序编程接口(API),该接口使用定义的身份验证协议将爬虫连接到其数据库。例如,用Python创建的request.get网络抓取工具可以使用此方法从源中检索数据,或使用专用的网络抓取库(如BeautifulSoup)从网页收集呈现的内容。那些使用JavaScript构建的通常依赖于fetch或Axios来连接到源并从中获取数据。获取数据后,爬虫通常会将收集到的信息转储到专用数据库、JSON对象、文本文件或Excel文件中。并且由于收集到的信息不一致,所以数据清洗通常是在抓取之后进行的。Web抓取方法无论您使用第三方自动化工具还是从头编写代码,Web抓取涉及以下方法中的任何一种或组合:1.DOM或标记解析:DOM解析涉及网页的客户端检查以创建深层DOM显示所有节点的树。因此,可以很容易地从网页中检索相关数据。2.标签抓取:在这里,网络爬虫以网页上的特定标签为目标并收集其内容。例如,电子商务爬虫可能会收集所有h2标签中的内容,因为它们包含产品名称和评论。3.HTTPAPI请求:这涉及使用API连接到数据源。当目标是从数据库中检索更新的内容时,这很有用。4.使用语义或元数据注释:这种方法利用称为元数据的一组数据之间的关系以流行的方式提取信息。例如,您可能决定从网页中检索与动物和国家相关的信息。5、Unix文本爬取:文本爬取使用标准的Unix正则表达式从大量文件或网页中获取匹配数据。什么是网络爬虫,它是如何工作的?虽然爬虫或蜘蛛机器人可能会在爬行过程中下载网站内容,但爬行并不是其最终目标。网络爬虫经常扫描网站上的信息以检查特定指标。最终,它了解网站的结构及其所有内容。爬虫通过将属于许多网页的唯一资源定位器(URL)收集到爬虫边界中来工作。然后它使用站点下载器检索内容,包括整个DOM结构,以创建浏览网页的副本。然后将这些存储到数据库中,在查询时可以将它们作为相关结果列表进行访问。因此,网络爬虫是一种编程软件,可以快速连续地扫描互联网上的内容,并根据请求组织它们以显示相关内容。例如,Googlebot和Bingbot等一些爬虫会根据多种因素对内容进行排名。一个重要的排名因素是使用网站内容中自然出现的关键字。您可以将此视为卖家从批发商店收集不同的商品,按重要性对它们进行排序,并根据买家的要求向买家提供最相关的商品。爬行机器人在爬取网站时,通常会分支到它找到的相关外部链接。然后它也会对它们进行爬网和索引。但是,除了Googlebot和Bingbot之外,还有很多爬虫。除了索引之外,他们中的许多人还提供特定的服务。与网络爬虫不同,爬行机器人不断地在网上冲浪。本质上,它是自动触发的。然后,它会在客户端更新时从许多网站收集实时内容。当他们在网站上四处移动时,他们会识别并选择所有可抓取的链接,以评估其所有页面上的脚本、HTML标记和元数据,但以某种方式受到限制的那些除外。有时,蜘蛛机器人会出于相同目的使用站点地图。但是,具有站点地图的站点比没有站点地图的站点抓取速度更快。Web抓取与Web抓取有不同的应用,后者有更多的应用,从搜索引擎优化(SEO)分析到搜索引擎索引、一般性能监控等等。它的某些应用程序还可能包括抓取网页。虽然您可能会用手缓慢地爬网,但您不能自己爬网,因为这需要更快、更准确的机器人;这就是为什么它们有时被称为爬行蜘蛛机器人。例如,在您创建并启动网站后,Google的抓取算法会在几天内自动抓取它,以在人们搜索时显示元标记、标题标记和相关内容等语义。如前所述,根据其目标,蜘蛛机器人可能会抓取您的网站以提取其数据、在搜索引擎中对其编制索引、审核其安全性、将其与竞争对手的内容进行比较或分析其SEO合规性。然而,尽管它有一些积极的方面,比如网页抓取工具,但我们无法扫除幕后可能存在的爬虫恶意使用。网络爬虫的类型根据它们的应用,爬虫有多种形式。以下是不同类型及其作用的列表:1.以内容为中心的网络爬虫:这些类型的蜘蛛机器人从整个网络收集相关内容。最终,他们根据相关网站的内容与搜索词的相关程度对相关网站的URL进行排名。内容或主题爬行机器人的优势在于它们使用的资源较少,因为它们专注于检索更多与利基相关的内容。2.内部爬虫:一些组织为特定目的构建内部爬虫。这些可能包括检查软件漏洞的蜘蛛机器人。管理它们的责任通常落在熟悉组织软件架构的程序员身上。3.连续网络爬虫:又称增量蜘蛛机器人。渐进式爬虫在更新网站内容时对其进行迭代。抓取可以按计划或随机进行,具体取决于特定设置。4.协作式或分布式爬虫:分布式爬虫旨在优化可能被单个爬虫淹没的繁琐爬行活动。他们总是为了同一个目标一起努力。因此,他们有效地分摊了爬行的工作量。因此,它们通常比传统方法更快、更高效。5.监控机器人:无论来源是否获得授权,这些爬虫都使用独特的算法来监控竞争对手的内容和流量。即使他们不妨碍他们监控的网站的运行,他们也可能开始从其他网站吸引流量到机器人程序的来源。虽然人们有时会以这种方式使用它们,但它们的积极作用胜过坏处。例如,一些组织在内部使用它们来发现其软件中的潜在漏洞或改进SEO。6.并行爬虫:虽然也是分布式的,但是并行爬虫只是浏览和下载新鲜的内容。但是,如果网站不定期更新或包含旧内容,他们可能会忽略该网站。网络爬虫和网络抓取之间的主要区别为了缩小解释的范围,以下是抓取和爬行之间的显着差异:1.与网络爬虫不同,爬虫不一定需要遵循将数据下载到数据库的模式。它可能会将其写入其他文件类型。2.网络爬虫更通用,可能在其工作流程中包含网络抓取。3.爬虫机器人以特定页面和内容为目标,因此它们可能不会同时从多个来源收集数据。4.与爬虫手动触发的数据收集性质不同,网络爬虫定期收集实时内容。5.虽然抓取机器人的目的是在出现提示时获取数据,但网络爬虫遵循特定的算法。如此多的科技公司将它们用于实时网络洞察,而且它也是可调度的。它的用例之一是常规网络流量和SEO分析。6.抓取涉及连续的整个网络下载和基于依赖关系的后续索引。另一方面,Web抓取不会为检索到的内容编制索引。7.与用途更广、开发成本更高的爬行机器人不同,构建爬行器具有成本效益且耗时更少。WebCrawling和WebScraping之间的主要相似点尽管我们一直认为crawling和scaping在很多方面是不同的,但它们仍然有一些相似之处:1.它们都通过发出HTTP请求来访问数据。2.它们都是自动化流程。因此,它们在数据检索期间提供更高的准确性。3.网络上到处都有专门的工具可以用来抓取或抓取网站。4.当违反来源的数据保护条款时,它们都可以被用于恶意目的。5.爬虫和爬虫被完全阻止——通过IP抑制或其他方式。6.虽然工作流程可能不同,但它们都是从网络上下载数据。你能阻止爬虫和抓取你的网站吗?当然,您可以加倍努力摆脱这些机器人。但是,虽然您可能想要阻止机器人访问您的内容,但在决定是否应该阻止它们时需要小心谨慎。与爬行机器人不同,蜘蛛机器人的爬行会影响您网站的增长。例如,阻止对所有页面的抓取可能会损害您的可发现性,因为您最终可能会屏蔽具有流量驱动潜力的页面。最好的做法是阻止他们访问私人目录,例如管理、注册和登录页面,而不是直接阻止机器人。这确保搜索引擎不会索引这些页面以将它们显示为搜索结果。虽然我们之前提到过使用robots.txt,但还有许多其他方法可以保护您的网站免受机器人攻击:1.您可以使用CAPTCHA方法阻止机器人。2.您还可以阻止恶意IP地址。3.监控流量突然增加的可疑情况。4.评估您的流量来源。5.对抗已知或特定的机器人。6.瞄准潜在的恶意机器人。网络机器人可以绕过CORS和Robots.txt吗?然而,当涉及到来自不同来源的软件之间的交叉交互时,Internet遵循严格的规则。因此,如果资源服务器未授权来自另一个域的机器人,则Web浏览器可以通过称为跨源资源策略(CORS)的规则阻止其请求。因此,如果不使用其API或其他方式(例如身份验证令牌)对请求进行授权,则很难直接从资源数据库下载数据。另外,当在网站上发现robots.txt时,它清楚地说明了抓取某些页面的规则。因此,它也可以防止机器人访问它们。但是为了避免这种阻塞,一些机器人通过在请求标头中包含用户代理来模仿真实的浏览器。最终,CORS将此类机器人视为浏览器并授予其访问网站资源的权限。由于robots.txt只阻止机器人程序,这种绕过可以很容易地欺骗它并使其规则无能为力。尽管采取了多重预防措施,即使是科技巨头的数据仍然会被擦除或擦除。所以你只能尝试将控制放在适当的位置。结论尽管存在差异,但正如您现在所见,Web抓取和抓取都是有价值的数据收集技术。因此,由于它们在您的应用程序中存在一些关键差异,因此您必须明确定义您的目标以了解在您的特定场景中使用正确的工具。此外,它们是您不想丢弃的重要业务工具。如前所述,无论您是出于某种原因打算抓取还是抓取网络,都有许多第三方自动化工具可以实现您的目标。所以请随意利用它们。【翻译稿件,合作网站转载请注明原译者和出处.com】
