推荐答案
// www.javascriptcn.com code example
from bs4 import BeautifulSoup
# 假设我们有一个HTML文档
html_doc = """
<html>
<head><title>Sample Page</title></head>
<body>
<p class="title"><b>Sample Title</b></p>
<p class="story">Once upon a time...</p>
</body>
</html>
"""
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(html_doc, 'html.parser')
# 获取标题
title = soup.title.string
print(f"Title: {title}")
# 获取第一个<p>标签的内容
first_p = soup.p.string
print(f"First Paragraph: {first_p}")
# 获取所有<p>标签
all_p_tags = soup.find_all('p')
for p in all_p_tags:
print(p.string)本题详细解读
1. 导入BeautifulSoup库
首先,我们需要从bs4模块中导入BeautifulSoup类。BeautifulSoup是Python中用于解析HTML和XML文档的库,它能够将复杂的HTML文档转换为一个复杂的树形结构,每个节点都是Python对象。
from bs4 import BeautifulSoup
2. 创建HTML文档
在实际应用中,HTML文档通常是从网页中获取的。在这个例子中,我们直接定义了一个简单的HTML文档字符串。
// www.javascriptcn.com code example html_doc = """ <html> <head><title>Sample Page</title></head> <body> <p class="title"><b>Sample Title</b></p> <p class="story">Once upon a time...</p> </body> </html> """
3. 解析HTML文档
使用BeautifulSoup类解析HTML文档。html.parser是Python内置的HTML解析器,也可以使用其他解析器如lxml或html5lib。
soup = BeautifulSoup(html_doc, 'html.parser')
4. 获取标题
通过soup.title.string可以获取HTML文档中的标题内容。
title = soup.title.string
print(f"Title: {title}")5. 获取第一个<p>标签的内容
通过soup.p.string可以获取第一个<p>标签的内容。
first_p = soup.p.string
print(f"First Paragraph: {first_p}")6. 获取所有<p>标签
使用soup.find_all('p')可以获取文档中所有的<p>标签,并遍历输出它们的内容。
all_p_tags = soup.find_all('p')
for p in all_p_tags:
print(p.string)7. 其他常用操作
- 查找特定类名的标签:
soup.find_all('p', class_='title') - 查找特定属性的标签:
soup.find_all('a', href=True) - 获取标签的属性值:
tag['class']或tag.get('class')
通过这些操作,可以灵活地解析和提取HTML文档中的信息。