一、方法描述
在 BeautifulSoup 库中,clear()
方法会移除标签的内部内容,同时保留标签本身不变。如果存在任何子元素,则会调用 extract()
方法。如果设置了 decompose
参数为 True
,则会调用 decompose()
方法代替 extract()
方法。
二、语法
clear(decompose=False)
三、参数
-
decompose
:如果为 True
,则调用 decompose()
方法(一种更具破坏性的方法)来代替 extract()
方法。
四、返回值
clear()
方法不会返回任何对象。
五、示例
示例 1
当 clear()
方法被调用在表示整个文档的 soup
对象上时,所有内容都会被移除,留下一个空白的文档。
html = '''
<html>
<body>
<p>The quick, brown fox jumps over a lazy dog.</p>
<p>DJs flock by when MTV ax quiz prog.</p>
<p>Junk MTV quiz graced by fox whelps.</p>
<p>Bawds jog, flick quartz, vex nymphs.</p>
</body>
</html>
'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")
soup.clear()
print(soup)
输出:
示例 2
在下面的例子中,我们查找所有的 <p>
标签,并对每个标签调用 clear()
方法。
html = '''
<html>
<body>
<p>The quick, brown fox jumps over a lazy dog.</p>
<p>DJs flock by when MTV ax quiz prog.</p>
<p>Junk MTV quiz graced by fox whelps.</p>
<p>Bawds jog, flick quartz, vex nymphs.</p>
</body>
</html>
'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")
tags = soup.find_all('p')
for tag in tags:
tag.clear()
print(soup)
输出:
<html>
<body>
<p></p>
<p></p>
<p></p>
<p></p>
</body>
</html>
示例 3
在这里,我们清除 <body>
标签的内容,并设置 decompose
参数为 True
。
html = '''
<html>
<body>
<p>The quick, brown fox jumps over a lazy dog.</p>
<p>DJs flock by when MTV ax quiz prog.</p>
<p>Junk MTV quiz graced by fox whelps.</p>
<p>Bawds jog, flick quartz, vex nymphs.</p>
</body>
</html>
'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")
tags = soup.find('body')
ret = tags.clear(decompose=True)
print(soup)
输出:
<html>
<body></body>
</html>