数据抓取和网络安全(常见的数据抓取技术)

183 阅读7分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

什么是数据抓取?

数据抓取或网络抓取是将数据从网站导入文件或电子表格的过程。它用于从网络中提取数据,供抓取操作员个人使用,或在其他网站上重复使用数据。有许多用于自动数据抓取的软件应用程序。

数据抓取通常用于:

  • 收集商业智能以通知 Web 内容
  • 确定旅行预订或比较网站的价格
  • 通过公共数据源查找销售线索或进行市场调查
  • 将产品数据从电子商务网站发送到谷歌购物等在线购物平台

数据抓取具有合法用途,但经常被不良行为者滥用。例如,数据抓取通常用于收集电子邮件地址,以进行垃圾邮件或诈骗。抓取还可用于从一个网站检索受版权保护的内容,并自动将其发布到另一个网站上。

一些国家禁止使用自动电子邮件收集技术来获取商业利益,这通常被认为是一种不道德的营销行为。

数据抓取和网络安全

数据抓取工具被各种企业使用,不一定用于恶意目的。这些包括市场研究和商业智能,Web内容和设计以及个性化。

但是,数据抓取也给许多企业带来了挑战,因为它可以用来暴露和滥用敏感数据。被抓取的网站可能不知道他们的数据被收集了,或者正在收集什么。同样,合法的数据抓取工具可能无法安全地存储数据,从而允许攻击者访问它。

如果恶意行为者可以访问通过网络抓取收集的数据,他们可以在网络攻击中利用它。例如,攻击者可以使用抓取的数据来执行:

  • 网络钓鱼攻击 - 攻击者可以利用抓取的数据来增强其网络钓鱼技术。他们可以找出哪些员工拥有他们想要的目标访问权限,或者是否有人更容易受到网络钓鱼攻击。如果攻击者可以了解高级员工的身份,他们就可以进行针对其目标量身定制的鱼叉式网络钓鱼攻击。
  • 密码破解攻击 - 攻击者可以破解凭据以突破身份验证协议,即使密码没有直接泄露也是如此。他们可以研究有关员工的公开信息,以根据个人详细信息猜测密码。

数据抓取技术

以下是一些通常用于从网站抓取数据的技术。通常,所有网络抓取技术都从网站中检索内容,使用抓取引擎对其进行处理,并使用提取的内容生成一个或多个数据文件。

HTML 解析

HTML解析涉及使用JavaScript来定位线性或嵌套的HTML页面。它是一种功能强大且快速的方法,用于提取文本和链接(例如嵌套链接或电子邮件地址),抓取屏幕和提取资源。

DOM 解析

文档对象模型 (DOM) 定义 XML 文件的结构、样式和内容。抓取程序通常使用 DOM 解析器来深入查看网页的结构。DOM解析器可用于访问包含信息的节点,并使用XPath等工具抓取网页。对于动态生成的内容,抓取工具可以嵌入Firefox和Internet Explorer等Web浏览器来提取整个网页(或其部分)。

垂直聚合

使用广泛计算能力的公司可以创建垂直聚合平台来定位特定的垂直行业。这些是可以在云上运行的数据收集平台,用于自动生成和监控某些垂直行业的机器人,只需最少的人为干预。机器人是根据每个垂直行业所需的信息生成的,其效率由它们提取的数据质量决定。

XPath

XPath 是 XML Path Language 的缩写,XML Path Language 是 XML 文档的查询语言。XML 文档具有树状结构,因此抓取程序可以使用 XPath 通过根据各种参数选择节点来浏览它们。抓取程序可以将 DOM 解析与 XPath 结合使用,以提取整个网页并将其发布到目标站点上。

谷歌表格

Google表格是一种流行的数据抓取工具。Scarpers可以使用Sheets中的IMPORTXML功能从网站抓取,如果他们想要从网站中提取特定的模式或数据,这很有用。此命令还可以检查网站是否可以被抓取或受到保护。

如何减少网络抓取

为了使内容可见,通常需要将Web内容传输到网站查看器的机器上。这意味着查看者可以访问的任何数据也可以由抓取机器人访问。您可以使用以下方法来减少可以从您的网站抓取的数据量。

速率限制用户请求

人类访问者点击网站的互动速率是相对可预测的。例如,人类不可能每秒浏览100个网页,而机器可以同时发出多个请求。请求速率可能表示使用数据抓取技术,这些技术试图在短时间内抓取整个网站。

您可以对 IP 地址在特定时间范围内可以发出的请求数进行速率限制。这将保护您的网站免受利用,并显着降低数据抓取发生的速度。

使用 CAPTCHA 缓解高容量请求者

减缓数据抓取工作的另一种方法是应用CAPTCHA。这些要求网站访问者完成一项任务,这项任务对人类来说相对容易,但对机器来说却是令人望而却步的挑战。即使机器人可以通过一次CAPTCHA,它也无法在多个实例中执行此操作。CAPTCHA挑战的缺点是它们对用户体验的潜在负面影响。

定期修改 HTML 标记

数据抓取机器人需要一致的格式,以便能够遍历网站并有效地解析有用的信息。可以通过定期修改 HTML 标记元素来中断机器人的工作流。

例如,您可以嵌套 HTML 元素或更改各种标记方面,这将使一致地抓取变得更加困难。一些网站在呈现时都会进行随机修改,以保护其内容。或者,网站可以减少修改其标记代码的频率,以防止长期的数据抓取工作。

在媒体对象中嵌入内容

这是一种不太流行的缓解方法,涉及媒体对象(如图像)。要从图像文件中提取数据,您需要使用光学字符识别 (OCR),因为内容不以字符串形式存在。这使得复制内容的过程对于数据抓取者来说更加复杂,但它也可能是合法Web用户的障碍,他们将无法从网站复制内容,而必须重新键入或记住它。

但是,上述方法是局部的,并不能保证防止刮擦。若要完全保护你的网站,请部署一个爬虫程序保护解决方案,该解决方案可以检测抓取爬虫程序,并能够在它们连接到你的网站或 Web 应用程序之前阻止它们。