数据采集:用 Pandas 从 HTML 网页中提取宝贵信息
2023-11-27 14:40:00
在当今数据驱动的时代,从各种来源中提取信息以进行分析和决策至关重要。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 数据的技术,为你的数据驱动的项目和研究赋能。