Python 网页抓取 - 简介

网络抓取是从网络中提取信息的自动过程。 本章将让您深入了解网页抓取、它与网页抓取的比较,以及您应该选择网页抓取的原因。 您还将了解网络抓取工具的组件和工作原理。


什么是网页抓取?

"抓取"一词在字典中的意思是指从网上获取一些东西。 这里出现了两个问题:我们可以从网络上获得什么以及如何获得。

第一个问题的答案是"数据"。 数据对于任何程序员来说都是不可或缺的,每个编程项目的基本要求就是大量有用的数据。

第二个问题的答案有点棘手,因为获取数据的方式有很多种。 一般来说,我们可能会从数据库或数据文件等来源获取数据。 但是,如果我们需要在线提供的大量数据怎么办? 获取此类数据的一种方法是手动搜索(在网络浏览器中单击)并保存(复制粘贴到电子表格或文件中)所需数据。 这种方法非常繁琐且耗时。 获取此类数据的另一种方法是使用网络抓取

Web scraping,也称为网页抓取web 数据挖掘,是构建一个可以提取、解析、下载的代理的过程 并自动组织来自网络的有用信息。 换句话说,我们可以说,网络抓取软件将根据我们的要求自动从多个网站加载和提取数据,而不是手动保存来自网站的数据。


网页抓取的起源

Web 抓取的起源是屏幕抓取,用于集成非基于 Web 的应用程序或本机 Windows 应用程序。 最初屏幕抓取是在万维网 (WWW) 广泛使用之前使用的,但它无法扩展 WWW 扩展。 这使得有必要使屏幕抓取方法自动化,并且称为"网页抓取"的技术应运而生。


网络爬行 vs 网络抓取

网络爬行 和 抓取 这两个术语经常互换使用,因为它们的基本概念是提取数据。 但是,它们彼此不同。 我们可以从他们的定义中理解基本的区别。

网络爬行主要用于使用机器人(也称为爬虫)为页面上的信息编制索引。 它也称为索引。 另一方面,网络抓取是一种使用机器人(又名抓取器)提取信息的自动化方式。 它也称为数据提取

要了解这两个术语之间的区别,让我们看看下面给出的比较表−

网络爬行 网页抓取
指下载并存储大量网站的内容。 指的是通过使用站点特定的结构从网站中提取单个数据元素。
主要是大规模完成。 可以在任何规模上实施。
产生通用信息。 产生特定信息。
被谷歌、必应、雅虎等主要搜索引擎使用。 Googlebot 是网络爬虫的一个例子。 使用网络抓取提取的信息可用于在其他一些网站中复制或可用于执行数据分析。 例如,数据元素可以是名称、地址、价格等。

网络抓取的用途

使用网络抓取的用途和原因与万维网的用途一样无穷无尽。 网络抓取可以做任何事情,比如在线订购食物、为您扫描在线购物网站以及在有空时购买比赛门票等,就像人类一样。 此处讨论了网络抓取的一些重要用途 −

  • 电子商务网站 − Web 网络抓取可以从各种电子商务网站收集与特定产品价格特别相关的数据,以供比较。

  • 内容聚合器 − Web 网络抓取被内容聚合器(如新闻聚合器和工作聚合器)广泛使用,以向其用户提供更新的数据。

  • 营销和销售活动 − Web 网络抓取工具可用于获取电子邮件、电话号码等数据,用于销售和营销活动。

  • 搜索引擎优化 (SEO) − Web 网络抓取被 SEMRush、Majestic 等 SEO 工具广泛使用,以告诉企业他们如何对对他们重要的搜索关键字进行排名。

  • 机器学习项目数据 − 机器学习项目的数据检索取决于网络抓取。

研究数据 − 研究人员可以通过这种自动化过程节省时间,为他们的研究工作收集有用的数据。


网页抓取工具的组成部分

一个网页抓取工具由以下组件组成 −

网络抓取模块

网络爬虫的一个非常必要的组件,网络爬虫模块,用于通过向 URL 发出 HTTP 或 HTTPS 请求来导航目标网站。 爬虫下载非结构化数据(HTML 内容)并将其传递给下一个模块提取器。

提取器

提取器处理获取的 HTML 内容并将数据提取为半结构化格式。 这也称为解析器模块,并使用不同的解析技术,如正则表达式、HTML 解析、DOM 解析或人工智能来实现其功能。

数据转换与清理模块

以上提取的数据不适合随时使用。 它必须通过一些清理模块,这样我们才能使用它。 字符串操作或正则表达式等方法可用于此目的。 请注意,提取和转换也可以一步完成。

存储模块

提取数据后,我们需要根据需要存储它。 存储模块将以标准格式输出数据,可以存储在数据库或 JSON 或 CSV 格式中。


Web 抓取工具的工作

Web 抓取工具可以定义为用于下载多个网页的内容并从中提取数据的软件或脚本。

网络抓取工具

如上图所示,我们可以通过简单的步骤了解网络抓取工具的工作原理。

第 1 步:从网页下载内容

在这一步中,网络抓取工具将从多个网页下载请求的内容。

第 2 步:提取数据

网站上的数据是 HTML,并且大部分是非结构化的。 因此,在这一步中,网络抓取工具将从下载的内容中解析和提取结构化数据。

第 3 步:存储数据

在这里,网络抓取工具将以任何格式(如 CSV、JSON 或数据库)存储和保存提取的数据。

第 4 步:分析数据

所有这些步骤成功完成后,网络抓取工具将分析由此获得的数据。