Beautiful Soup - clear() 方法



方法描述

Beautiful Soup 库中的 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)

输出

每个 <p> .. </p> 的内容将被移除,标签将被保留。

<html>
<body>
<p></p>
<p></p>
<p></p>
<p></p>
</body>
</html>

示例 3

在这里,我们使用 decompose 参数设置为 Tue 清除 <body> 标签的内容。

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>
广告

© . All rights reserved.