返回

数据采集:用 Pandas 从 HTML 网页中提取宝贵信息

人工智能

在当今数据驱动的时代,从各种来源中提取信息以进行分析和决策至关重要。HTML(超文本标记语言)网页是丰富且广泛的数据宝库,可以为各种目的提供有价值的见解。借助 Python 的强大 Pandas 库,我们可以轻松地将 HTML 网页中的数据抓取到结构化的 DataFrame 中,为后续分析奠定基础。

本文将通过一系列循序渐进的示例,引导你使用 Pandas 的 read_html 函数从 HTML 网页中读取数据。我们将从一个简单的字符串示例开始,然后扩展到从 Wikipedia 等真实网页中提取数据。

从字符串中读取 HTML

让我们从一个简单的字符串示例开始,其中包含一个简单的 HTML 表格:

<html>
<body>
<table>
<tr><th>姓名</th><th>年龄</th></tr>
<tr><td>约翰·史密斯</td><td>25</td></tr>
<tr><td>玛丽·琼斯</td><td>30</td></tr>
</table>
</body>
</html>

我们可以使用 Pandas 的 read_html 函数从这个字符串中读取 HTML 表格,如下所示:

import pandas as pd

html = "<html><body><table><tr><th>姓名</th><th>年龄</th></tr><tr><td>约翰·史密斯</td><td>25</td></tr><tr><td>玛丽·琼斯</td><td>30</td></tr></table></body></html>"
df = pd.read_html(html)[0]

print(df)

输出结果将是一个包含姓名和年龄列的 DataFrame:

   姓名  年龄
0  约翰·史密斯  25
1  玛丽·琼斯  30

从 Wikipedia 页面读取数据

现在,让我们从一个真实世界的示例中提取数据。我们将从 Wikipedia 的美国总统列表页面抓取总统姓名和任期数据。

import pandas as pd

url = "https://en.wikipedia.org/wiki/List_of_Presidents_of_the_United_States"
df = pd.read_html(url)[0]

print(df.head())

输出结果将是一个包含总统姓名、任期开始和结束日期的 DataFrame:

   President           Start of term  End of term
0  George Washington          1789-04-30       1797-03-04
1  John Adams             1797-03-04       1801-03-04
2  Thomas Jefferson        1801-03-04       1809-03-04
3  James Madison           1809-03-04       1817-03-04
4  James Monroe           1817-03-04       1825-03-04

优化和注意事项

在从 HTML 网页中提取数据时,需要注意以下事项:

SEO 优化: 确保你的代码遵循搜索引擎优化 (SEO) 最佳实践,以提高你的文章在搜索结果中的可见性。

独创性: 避免抄袭或未经允许使用他人的内容。你的文章应具有独创性,并提供新的见解和分析。

全面性和创新性: 提供充足且有价值的信息,同时平衡全面性和创新性。避免陈词滥调,并努力提供独特的视角。

代码示例: 对于技术指南,提供明确的步骤和示例代码,以帮助读者理解和实施你的解决方案。

结论

使用 Pandas 的 read_html 函数从 HTML 网页中提取数据是一个强大而多功能的过程。它允许你从各种来源获取宝贵的信息,为数据分析、可视化和决策提供支持。通过遵循本文提供的逐步指南,你可以掌握从字符串和真实网页中读取 HTML 数据的技术,为你的数据驱动的项目和研究赋能。