使用BeautifulSoup删除p标签中的script标签

5 投票
1 回答
3446 浏览
提问于 2025-04-18 16:38

我写了一段代码,可以从段落中提取内容。

from bs4 import BeautifulSoup
from bs4 import BeautifulSoup, NavigableString
import re


soup = BeautifulSoup(open('MUFC.html'))
a_tag = soup.find_all('p')
#print(a_tag)
for x in a_tag:
    print(x.get_text())

但是在这些段落标签里面,有一些脚本标签。

像这样:

<p>
<script>
.....
</script>
</p>

我不想要这些脚本标签。我们能不能加个条件,让 get_text() 方法忽略这些标签呢?

1 个回答

7

首先,去掉 所有的 script 标签,然后提取文本:

soup = BeautifulSoup(open('MUFC.html'))

for script in soup.find_all('script'):
    script.extract()

paragraphs = soup.find_all('p')
for paragraph in paragraphs:
    print(paragraph.get_text(strip=True))

撰写回答