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