我想将<h1>title</h1>
替换为<b><u>title</u></b>
我知道我可以使用h1
b
替换为soup.h1.name = "b"
但有没有办法用其他几个替换单个标签?
(丹尼尔罗斯曼特别编辑:标签并不重要...... )
答案 0 :(得分:1)
使用wrap()
来自文档:
soup = BeautifulSoup("<p>I wish I was bold.</p>")
soup.p.string.wrap(soup.new_tag("b"))
# <b>I wish I was bold.</b>
soup.p.wrap(soup.new_tag("div"))
# <div><p><b>I wish I was bold.</b></p></div>
答案 1 :(得分:1)
感谢RobertB,我可以找出答案的其余部分。
你需要:
h1
p
h1
u
h1
(使用unwrap()
)<!-- language: python -->
from bs4 import BeautifulSoup
soup = BeautifulSoup("<h1>title</h1>", "html.parser")
soup.h1.string.wrap(soup.new_tag("b"))
print(soup) # >> <h1><b>title</b></h1>
soup.h1.string.wrap(soup.new_tag("u"))
print(soup) # >> <h1><b><u>title</u></b></h1>
soup.h1.unwrap()
print(soup) #>> <b><u>title</u></b>