首页 > 解决方案 > python - beautifulsoup - 删除一行代码

问题描述

我开始学习beautifulsoup。我正在尝试从 html 脚本中删除一行包含</div>.

文档中的大多数示例都是针对整个标签(开始和结束部分)提供的。
是否可以只修改标签的一部分?例如:

</div>
<div >Hello</div>
<div data-foo="value">foo!</div>


如何仅删除代码的第一行?

标签: pythonhtmlweb-scrapingbeautifulsoup

解决方案


您可以使用 BeautifulSoupunwrap()指定无效标签,这只会删除没有打开/关闭对应项的额外标签,而保留其他标签:

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

invalid_tags = ['</div>']

for tag in invalid_tags: 
    for match in soup.findAll(tag):
        match.unwrap()

print(soup)

结果:

<div>Hello</div>
<div data-foo="value">foo!</div>

推荐阅读