删除部分 html(标签)保持风格 - python
Remove portion of html (tag) keeping style - python
我想在保存之前删除包含特定字符串的 html 的一部分。该标签包含一个人的姓名,我想删除整个标签以使其匿名。
html是:
<div id="top-card" data-li-template="top_card">...</div>
及其所有子项。
我使用 beautifulsoup 进行了探索,但找不到解决方案。
有没有一种方法可以删除 html 的整个 "portion",同时保持样式不变?
谢谢!
您可以使用 .extract()
来删除使用 BeautifulSoup
的元素。
假设您要删除 ID 为 "top-card" 的 div:
>>> html = """
... <div id="top-card" data-li-template="top_card"><div>test</div></div>
... <div>test</div> <div id="foo">blah</div>"""
>>> soup = BeautifulSoup(html)
>>> [div.extract() for div in soup("div",id="top-card")]
[<div data-li-template="top_card" id="top-card"><div>test</div></div>]
>>> soup
<html><body>
<div>test</div> <div id="foo">blah</div></body></html>
我想在保存之前删除包含特定字符串的 html 的一部分。该标签包含一个人的姓名,我想删除整个标签以使其匿名。
html是:
<div id="top-card" data-li-template="top_card">...</div>
及其所有子项。
我使用 beautifulsoup 进行了探索,但找不到解决方案。
有没有一种方法可以删除 html 的整个 "portion",同时保持样式不变?
谢谢!
您可以使用 .extract()
来删除使用 BeautifulSoup
的元素。
假设您要删除 ID 为 "top-card" 的 div:
>>> html = """
... <div id="top-card" data-li-template="top_card"><div>test</div></div>
... <div>test</div> <div id="foo">blah</div>"""
>>> soup = BeautifulSoup(html)
>>> [div.extract() for div in soup("div",id="top-card")]
[<div data-li-template="top_card" id="top-card"><div>test</div></div>]
>>> soup
<html><body>
<div>test</div> <div id="foo">blah</div></body></html>