gpt4 book ai didi

Python beautifulsoup 删除所有带有特定标签和文本的标签/内容

转载 作者:太空宇宙 更新时间:2023-11-04 09:58:11 27 4
gpt4 key购买 nike

我在 python 中使用 beautifulsoup,我想从包含在特定标签中的字符串中删除所有内容,并且有一个特定的非闭合标签,其后有特定的文本。在此示例中,我想删除所有带有 DOCA 文本的类型标签的文档。

假设我有这样的东西:

<body>
<document>
<type>DOCA
<sequence>1
<filename>DOCA.htm
<description>FORM DOCA
<text>
<title>Form DOCA</title>
<h5 align="left"><a href="#toc">Table of Contents</a></h5>
</document>
<document>
<type>DOCB
<sequence>1
<filename>DOCB.htm
<description>FORM DOCB
<text>
<title>Form DOCB</title>
<h5 align="left"><a href="#toc">Table of Contents</a></h5>
</document>
<body>

我想做的是删除所有 <document>有一个 <type> DOCA。我尝试了以下但它不起作用:

>>print(soup.find('document').find('type', text = re.compile('DOCA.*')))
None

最佳答案

您可以查询所有文档,然后在每个文档中查询所有类型,检查其中是否存在 DOCA,如果存在则删除整个封闭文档。

from bs4 import BeautifulSoup

soup = BeautifulSoup(..., 'html.parser')

for doc in soup.find_all('document'):
for type in doc.find_all('type'):
if 'DOCA' in type.text:
doc.extract()
break

print(soup)

输出:

<body>

<document>
<type>DOCB
<sequence>1
<filename>DOCB.htm
<description>FORM DOCB
<text>
<title>Form DOCB</title>
<h5 align="left"><a href="#toc">Table of Contents</a></h5>
</text></description></filename></sequence></type></document>
</body>

关于Python beautifulsoup 删除所有带有特定标签和文本的标签/内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44974073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com