使用BeautifulSoup删除p标签中的脚本标签

5
我已经编写了一段代码,它可以从段落中提取内容。
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())

但是有些 script 标签在 p 标签内部

类似这样的内容

<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))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接