一、方法描述
在 BeautifulSoup 库中,replace_with()
方法用于用提供的标签或字符串替换元素中的标签或字符串。
二、语法
replace_with(tag/string)
三、参数
此方法接受一个标签对象或字符串作为参数。
四、返回类型
replace_with()
方法不返回一个新的对象。
五、示例
示例 1
在这个例子中,使用 replace_with()
方法,<p>
标签被 <b>
标签替换。
html = '''
<html>
<body>
<p>The quick, brown fox jumps over a lazy dog.</p>
</body>
</html>
'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")
tag1 = soup.find('p')
txt = tag1.string
tag2 = soup.new_tag('b')
tag2.string = txt
tag1.replace_with(tag2)
print(soup)
输出:
<html>
<body>
<b>The quick, brown fox jumps over a lazy dog.</b>
</body>
</html>
示例 2
您可以简单地通过在 tag.string
对象上调用 replace_with()
方法来替换标签内的文本为另一个字符串。
html = '''
<html>
<body>
<p>The quick, brown fox jumps over a lazy dog.</p>
</body>
</html>
'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")
tag1 = soup.find('p')
tag1.string.replace_with("DJs flock by when MTV ax quiz prog.")
print(soup)
输出:
<html>
<body>
<p>DJs flock by when MTV ax quiz prog.</p>
</body>
</html>
示例 3
用于替换的标签对象可以通过任何一个 find()
方法获得。这里,我们将替换紧跟在 <p>
标签后面的文本。
html = '''
<html>
<body>
<p>The quick, <b>brown</b> fox jumps over a lazy dog.</p>
</body>
</html>
'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")
tag1 = soup.find('p')
tag1.find_next('b').string.replace_with('black')
print(soup)
输出:
<html>
<body>
<p>The quick, <b>black</b> fox jumps over a lazy dog.</p>
</body>
</html>