gpt4 book ai didi

python - 美丽汤4 : Need to add inverse paragraphs tags to separate a field into two paragraphs

转载 作者:行者123 更新时间:2023-11-30 21:56:41 24 4
gpt4 key购买 nike

目前,有一个 header 标签附加了其内容。我需要将标题与其内容分开,方法是将它们维护在单独的段落标签中。

block_tag = <p>1.1 <u>Header Information</u>.  Content of the header with multiple lines</p>

type(block_tag)
<class 'bs4.element.Tag'>

header 应包含在 <b> 中或<u>标签

预期结果:

block_tag
<p>1.1 <u>Header Information</u>.</p><p> Content of the header with multiple lines</p>

到目前为止,我已经尝试使用 - 添加段落标签

new_tag("p") 创建 <p></p> 。需要反向标签<\p><p>

方法1

para_tag = soup.new_tag("p")
block_tag.insert(2,para_tag)
block_tag
<p>1.1 <u>Header Information</u>. <p></p> Content of the header with multiple lines</p>

方法2

block_tag.insert(2,"<\p><p>")
block_tag
<p>1.1 <u>Header Information</u>&lt;\p&gt;&lt;p&gt;. Content of the header with multiple lines</p>

谢谢

最佳答案

可以获取 header 和 之后的剩余内容 wrap 它位于新的 p 标记内。然后 extract 它来自原始标签和 insert_after原始标签。

from bs4 import BeautifulSoup
html="""
<p>1.1 <u>Header Information</u>. Content of the header with multiple lines</p>
"""
soup=BeautifulSoup(html,'html.parser')
block_tag=soup.find('p')
remaining=block_tag.contents[-1]
new_tag=remaining.wrap(soup.new_tag("p"))
block_tag.insert_after(new_tag.extract())
print(soup)

输出:

<p>1.1 <u>Header Information</u></p><p>.  Content of the header with multiple lines</p>

除了句号之外几乎完美。

注意:我不确定多行标题的内容到底是什么,但不要将此视为确切的答案。您可能需要即兴发挥。

关于python - 美丽汤4 : Need to add inverse paragraphs tags to separate a field into two paragraphs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55443180/

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