📅  最后修改于: 2023-12-03 15:13:38.663000             🧑  作者: Mango
BeautifulSoup 是一个用于从 HTML 和 XML 文件中提取数据的 Python 库。它通过解析原始文件,构建一个 DOM 树,并提供一些有用的方法来搜索、遍历以及修改 DOM 树中的节点,从而帮助我们从复杂的 HTML 中快速抓取数据。本文将介绍如何使用 BeautifulSoup 提取 HTML 中的列表数据。
我们可以使用 pip 安装 BeautifulSoup:
pip install beautifulsoup4
假设我们有一个 HTML 页面,其中包含了一个简单的列表:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML List Example</title>
</head>
<body>
<h1>HTML List Example</h1>
<ul id="fruits">
<li class="apple">Apple</li>
<li class="banana">Banana</li>
<li class="cherry">Cherry</li>
<li class="durian">Durian</li>
<li class="elderberry">Elderberry</li>
</ul>
</body>
</html>
我们可以使用 BeautifulSoup 提取这个列表的数据。首先,我们需要导入 BeautifulSoup 和打开这个 HTML 文件:
from bs4 import BeautifulSoup
with open("example.html") as f:
soup = BeautifulSoup(f, "html.parser")
然后,我们可以使用 BeautifulSoup 的 find()
方法定位到列表的节点:
fruits_list = soup.find("ul", {"id": "fruits"})
这里我们使用了 find()
方法查找了一个 id
为 "fruits"
的 ul
元素,它返回了一个 BeautifulSoup 对象。接下来,我们可以使用 BeautifulSoup 对象的 find_all()
方法提取所有的列表项:
fruits = fruits_list.find_all("li")
这样,我们就得到了一个包含所有列表项的列表。我们可以遍历这个列表并把每个列表项的文本内容打印出来:
for fruit in fruits:
print(fruit.text)
运行以上代码,输出如下:
Apple
Banana
Cherry
Durian
Elderberry
使用 BeautifulSoup 提取 HTML 中的列表数据十分简单,通过 find()
和 find_all()
方法,我们可以轻松地定位到想要的节点,并提取它们的文本内容或属性。如果你在开发 Web 抓取或数据挖掘应用程序时遇到了需要提取 HTML 内容的问题,推荐你尝试使用 BeautifulSoup。