使用python在元素之前插入html标记
我有一个html文档,其结构如下:使用python在元素之前插入html标记,python,html,beautifulsoup,Python,Html,Beautifulsoup,我有一个html文档,其结构如下: <ul> <li> <span class="date"> 2021. </span> </li> <li> <span class="date"> 2020. </span> <span class="links"> </s
<ul>
<li>
<span class="date">
2021.
</span>
</li>
<li>
<span class="date">
2020.
</span>
<span class="links">
</span>
</li>
</ul>
<ul>
<h3 id="year_heading">2021</h3>
<li>
<span class="date">
2021.
</span>
</li>
<h3 id="year_heading">2020</h3>
<li>
<span class="date">
2020.
</span>
<span class="links">
</span>
</li>
</ul>
目标是使其看起来如下所示:
<ul>
<li>
<span class="date">
2021.
</span>
</li>
<li>
<span class="date">
2020.
</span>
<span class="links">
</span>
</li>
</ul>
<ul>
<h3 id="year_heading">2021</h3>
<li>
<span class="date">
2021.
</span>
</li>
<h3 id="year_heading">2020</h3>
<li>
<span class="date">
2020.
</span>
<span class="links">
</span>
</li>
</ul>
2021
-
2021
2020
-
2020
但目前的输出是
<ul>
<li><h3 id="year_heading">2021</h3>
<span class="date">
2021.
</span>
</li>
<li><h3 id="year_heading">2020</h3>
<span class="date">
2020.
</span>
<span class="links">
</span>
</li>
</ul>
- 2021年
2021
- 二零二零年
2020
这会将我的标题放置在li标记的顶部,导致条目的bulletpoint位于标题旁边,而不是条目本身旁边。这个问题有好的解决办法吗
编辑:添加所需输出尝试:
从bs4导入美化组
html_doc=“”
-
2021
-
2020
“
”
soup=BeautifulSoup(html\u doc,“html.parser”)
对于汤中的span,选择(“span.date”):
txt=span.get_text(strip=True).strip(“.”)
ul=span.查找父项(“ul”)
插入(
ul.目录索引(查找父项(“li”),
美丽之群(
{}\n.格式(txt),“html.parser”
),
)
印花(汤)
印刷品:
2021
-
2021
2020
-
2020
我认为最好是显示所需的输出HTML,而不是只描述所需内容。