转载请注明出处:
BeautifulSoup
是一个用于解析HTML和XML文档的Python库,它提供了一些简单但强大的API,让你可以从文档中提取数据。以下是一些BeautifulSoup
的主要特性和功能:
- 解析HTML和XML文档:
BeautifulSoup
可以解析HTML和XML文档,并创建一个BeautifulSoup
对象,这个对象表示整个文档。可以使用这个对象来搜索和修改文档的元素。 - 导航文档树:
BeautifulSoup
提供了一些方法,让你可以在文档树中导航。例如,可以使用find
方法来搜索文档树中的元素,使用find_all
方法来搜索所有匹配的元素,使用parent
,children
,descendants
等属性来访问元素的父元素,子元素和后代元素。 - 搜索文档树:
BeautifulSoup
提供了一些方法,可以搜索文档树中的元素。例如,可以使用find
方法来搜索文档树中的第一个匹配的元素,使用find_all
方法来搜索所有匹配的元素,使用select
方法来使用CSS选择器来搜索元素。 - 修改文档树:
BeautifulSoup
提供了一些方法,可以修改文档树中的元素。例如,可以使用append
,prepend
,insert_before
,insert_after
方法来添加新的元素,使用replace_with
方法来替换元素,使用extract
方法来移除元素。
使用BeautifulSoup
的示例:
from bs4 import BeautifulSoup
# 解析HTML文档
html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
# 导航文档树
p = soup.find('p', class_='title')
print(p.name) # 输出: p
print(p.string) # 输出: The Dormouse's story
# 搜索文档树
links = soup.find_all('a')
for link in links:
print(link.get('href')) # 输出: http://example.com/elsie, http://example.com/lacie, http://example.com/tillie
# 修改文档树
p.string.replace_with('A new title')
print(p.string) # 输出: A new title
搜索相邻的元素标签值:
def job():
soup = BeautifulSoup(html_doc, 'html.parser')
target_a = soup.find('a', string='Elsie')
print('target_a', target_a.text)
if target_a is not None:
target_a_next = target_a.find_next('a')
print(target_a_next.text)
else:
print("No matching element found.")
job()