gpt4 book ai didi

python - 在 beautifulsoup 中构建段落标签

转载 作者:行者123 更新时间:2023-12-01 05:12:07 26 4
gpt4 key购买 nike

我想在我的汤里加一段话。该段落应如下所示 -

<p class="test-class"><strong>TEST MESSAGE</strong></p>

我已经有一个可以执行此操作的工作代码。

paragraphTag = soup.new_tag('p')
paragraphTag['class'] = 'test-class'
strongTag = soup.new_tag('strong')
strongTag.append('TEST MESSAGE')
paragraphTag.append(strongTag)
paragraph.insert_before(paragraphTag)

请注意,insert_before 是特意完成的,因为这是我需要 insert_before 的较大代码的一部分。

我的问题是 - 有没有更好的方法来做到这一点?或者我可以编写更小的代码来实现此目的吗?另请注意,我尝试将所有内容放入一个字符串中并将其添加到段落中。但是当我使用 find_all 搜索所有 p 时标签 这个新添加的 p 标签被跳过。所以我猜它确实没有正确添加。

任何意见都将不胜感激。谢谢

最佳答案

您可以在 BeautifulSoup() 对象中将代码片段构建为 HTML:

html = '<p class="test-class"><strong>TEST MESSAGE</strong></p>'
snippet = BeautifulSoup(html).p.extract()
paragraph.insert_before(snippet)

.extract() 调用使此工作有效;它将元素从其宿主文档对象模型中分离出来。

演示:

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<html><body/></html>')
>>> html = '<p class="test-class"><strong>TEST MESSAGE</strong></p>'
>>> snippet = BeautifulSoup(html).p.extract()
>>> snippet
<p class="test-class"><strong>TEST MESSAGE</strong></p>
>>> soup.body.append(snippet)
>>> soup
<html><body><p class="test-class"><strong>TEST MESSAGE</strong></p></body></html>

关于python - 在 beautifulsoup 中构建段落标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23975524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com