标签用于创建每个字符表行,而

使用Pandas和BeautifulSoup抓取HTML表格

2025年1月5日 | 阅读 7 分钟

在当今数据驱动的世界中,从浩瀚的互联网中提取信息是分析师、研究人员和统计爱好者的基本技能。HTML 表格是结构化数据的良好来源,可以在许多网站上找到。它们保存着有价值的记录,这些记录只是等待被发现。这个艰巨的任务可以使用 Python 库 Pandas 和 BeautifulSoup 来完成。

强大的数据操作库 Pandas 提供的稳健功能使处理结构化数据变得更加容易。当与 Web 抓取库 BeautifulSoup 结合使用时,Python 开发人员拥有一个强大的工具集,可以快速提取 HTML 数据。

本文将简要介绍用于抓取 HTML 表格的各种库,以及它们的实现和示例。

什么是 Web 抓取?

从网站提取各种类型数据的过程称为 Web 抓取。它使用 HTML 标签来提取有用数据。有许多 Web 抓取策略。Selenium、BeautifulSoup 以及许多其他库可用于使用 Python 进行 Web 抓取。由于它成为为模型和算法提供数据的重要来源,因此在构建机器学习模型方面非常有益。此外,Web 抓取有助于自然语言处理 (NLP) 分析客户的行为和需求,以便它可以为有利和无缝的体验提供建议。Web 抓取产生的数据被保存在本地文件中,可以在其中进行进一步的修改和测试。Python 编程语言提供的 BeautifulSoup、Requests 和 Selenium 是 Python 中最常见和广泛使用的 Web 抓取库。

什么是 HTML 表格?

为了以有序和结构化的方式读取数据,HTML 表格是网站开发的关键组成部分。为了创建插入数据的单元格,使用了相交的行和列。为了便于用户理解和内容分析,网站上经常使用 HTML 表格以表格形式提供大量数据。对于 Web 开发人员来说,HTML 表格是一个重要的工具,无论他们正在开发的工具的复杂性如何,从基本的联系表格到高级数据可视化工具。

为什么选择 HTML 表格?

如今,网络上的结构化数据几乎总是通过 HTML 表格提供。从显示财务报告和统计分析到显示体育排名和天气预报,它们可用于多种用途。手动从这些表中提取信息可能非常繁琐和耗时。在这种情况下可以使用 Web 抓取。Web 抓取通过自动化过程提供了功能强大且引人入胜的解决方案。

什么是 BeautifulSoup?

BeautifulSoup 是一个流行的 Web 抓取 Python 包。它非常有用。它以一种复杂但简单的方式提供了一种快速简便的方法来从 HTML 和 XML 文档中提取数据。通常,此库与 Requests 库结合使用以访问网站。然后利用 BeautifulSoup 强大的解析功能从 HTML 标签中提取相关数据。由于其用户友好的界面和快速的 HTML 文件解析,BeautifulSoup 已成为在线抓取工具的首选。

Pandas 与 BeautifulSoup

Pandas 是一个著名的 Python 库,除了其简单的数据结构外,还提供了广泛的数据操作功能。通过将 Pandas 与 BeautifulSoup 库结合使用,用户可以有效地解析和提取网站上 HTML 和 XML 文档中的有用信息。这些工具通过使 Web 抓取在数据收集和分析方面高效而有效,从而得到了增强。

使用 Pandas 和 BeautifulSoup 抓取 HTML 表格的过程

前提条件

使用的 Python 库

  • Requests:用于调用网站或向网站发送 HTTP 请求以获取访问权限。可以使用 pip 命令安装
  • BeautifulSoup:它将解析 HTML 和 XML 文档。可以使用以下命令安装
  • Pandas:该库有助于提供简单的数据操作结构。可以使用命令提示符或任何终端中的此命令进行安装

抓取 HTML 表格有两种方法

  • 仅使用 Pandas 库
  • 仅使用 BeautifulSoup 库

使用 Pandas 库

Pandas 库提供了一个 pandas.read_html() 函数,用于读取 HTML 表格。它用于从网站上的 HTML 表中提取数据。此函数通过使用 BeautifulSoup 和 Urlib 等不同库来抓取网站,这些库以数据框的形式返回网页上的表格列表。

pandas.read_html() 函数的语法

  • data = 形成的数据框
  • pd = pandas 库的对象
  • url = 网站链接

使用 pandas.read_html() 函数实现抓取 HTML 表格

这是一份详细的分步指南,解释了如何使用 pandas.read_html() 函数从任何网站抓取 HTML 表格

步骤 1:导入必要的库

该代码导入了 requests 和 pandas 库。requests 库调用网站 URL,而 pandas 使用 read_html() 函数抓取表格。

步骤 2:使用网站 URL 读取 HTML 表格

输出

Scraping HTML Tables with Pandas and BeautifulSoup

在此,调用了一个 URL,并创建了标头,通过这些标头网页向抓取器提供访问权限。get 函数用于使用标头调用 url。

步骤 3:探索表格

输出

Scraping HTML Tables with Pandas and BeautifulSoup

此循环将搜索表格并打印其中的前几行。

  • 获取特定表格

输出

Scraping HTML Tables with Pandas and BeautifulSoup

这是如何选择任何所需的表格。将在数据框中调用表索引。

步骤 4:保存表格

输出

Scraping HTML Tables with Pandas and BeautifulSoup

to_csv() 函数用于将选定的表格保存在 csv 文件中。

这是使用 pandas 库抓取 html 表格的完整代码

使用 Pandas 库抓取 HTML 表格的潜力可以轻松地进行数据分析和数据提取。Pandas 库可以用于抓取整个网页,使用 BeautifulSoup 库的一个实例,类似于表格。

虽然使用 Pandas 库进行抓取很简单,但它并不总是适合对 HTML 表格进行元素级别的抓取。当仅需要表格的某些元素或一部分时,Pandas 库通常不足以抓取 HTML 表。在这种情况下可以使用 BeautifulSoup 库。

使用 BeautifulSoup 库

让我们开始使用 BeautifulSoup 库抓取 HTML 表格。

首先,需要理解的主要概念是 HTML 的基本结构。HTML 或超文本标记语言包含各种标签,如 table、heading、body 等。

HTML 表格的结构是

标签是添加表格到网页的有用工具。在 table 标签内,
标签用于表头。然而, 标签代表表数据,用于保存表的描述。

使用 BeautifulSoup 库实现抓取 HTML 表格

这是一份详细的分步指南,解释了如何使用 beautifulSoup 从任何网站抓取 HTML 表格

步骤 1:导入所需的库

首先,导入所需的库。requests 库将调用网站的 URL;beautifulsoup 库用于抓取网站。

步骤 2:获取网页

在此步骤中,get() 函数将使用标头调用网页。

步骤 3:解析 HTML 标签

使用 beautifulsoup 对象和 html.parser,解析 HTML 标签以获取网页的 HTML 结构。

步骤 4:查找网页上的所有表格

使用 find() 函数,beautifulsoup 将搜索网页上的所有表格。

步骤 5:从表格中提取数据

要检索表格的数据,请使用 for 循环。使用 tr 标签检索行。遍历行中的每个单元格,使用 th 和 td 标签来提取表格的数据。使用 append() 函数将其附加。最后,逐行打印表格。

步骤 6:将数据保存到数据框

输出

Scraping HTML Tables with Pandas and BeautifulSoup

可以使用 pandas 库将表格数据保存为数据框或 CSV 文件。要抓取表格,请使用 beautifulsoup 库并参考以下代码。

结论

用户可以通过使用 Pandas 和 BeautifulSoup 抓取 HTML 表格,从浩瀚的互联网中提取有价值的信息。这一系列库为自动化、分析或完成研究提供了一种灵活而高效的解决方案。一旦数据分析师学会使用这些工具,他们就可以利用互联网的力量来支持他们的项目并做出明智的决策。