Python BeautifulSoup replace_with() 方法

2023-04-17 00:00:00 python beautifulsoup replace

replace_with() 方法是 BeautifulSoup 对象的方法,用于替换某个标签或字符串的内容。

该方法需要传入替换的内容,可以是字符串、标签或其他 BeautifulSoup 对象。

下面是使用 replace_with() 方法将一个标签替换成字符串的示例代码:

from bs4 import BeautifulSoup

html = """
<div id="content">
    <p>这是一段文字。</p>
    <ul>
        <li>列表项1</li>
        <li>列表项2</li>
    </ul>
</div>
"""

soup = BeautifulSoup(html, 'html.parser')
content_div = soup.find('div', {'id': 'content'})

# 将 <ul> 标签替换成字符串
ul_html = '<ul class="my-list"><li>pidancode.com</li><li>皮蛋编程</li></ul>'
content_div.ul.replace_with(ul_html)

print(content_div.p)
print(content_div.ul)  # None
print(content_div.find('ul', {'class': 'my-list'}))

该代码输出:

<p>这是一段文字。</p>
None
<ul class="my-list"><li>pidancode.com</li><li>皮蛋编程</li></ul>

在这个例子中,我们首先使用 BeautifulSoup 对象解析了一个 HTML 字符串,然后找到了 id 为 content 的 div 标签。

接着,我们将该 div 标签中的 ul 标签内容替换成了一个字符串。替换后,我们通过输出 content_div.pcontent_div.ul,确认 p 标签未被改变,而原来的 ul 标签已被删除,并被新的 ul 标签所取代。

最后,我们使用 find() 方法找到了新的 ul 标签,并将其输出。

相关文章