You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用BeautifulSoup将HTML中已有文本包裹进FONT标签?

解决方法:用wrap()包裹目标文本节点

我来帮你搞定这个问题!你当前用append()方法只是把新创建的FONT标签追加到了目标<td>标签的末尾,所以才会出现日期在标签外面的情况。要实现把文本包裹在标签里的效果,咱们得用BeautifulSoup的wrap()方法,它专门用来把指定标签包裹在目标内容外层。

修改后的代码

import pandas
from bs4 import BeautifulSoup

a = [['1/2/2014', 'a', '6', 'z1'], ['1/2/2014', 'a', '3', 'z1'], ['1/3/2014', 'c', '1', 'x3'], ]
df = pandas.DataFrame.from_records(a[1:], columns=a[0])
soup = BeautifulSoup(df.to_html(header=False), 'lxml')

# 定位到包含目标文本的td标签
original_tag = soup.find_all('td')[4]
# 创建指定样式的FONT标签
new_tag = soup.new_tag('FONT', COLOR='white')
# 把td内部的文本节点用新标签包裹
original_tag.contents[0].wrap(new_tag)

print(soup)

关键说明

  • original_tag.contents[0]:获取到目标<td>里的文本节点(也就是1/3/2014)
  • wrap(new_tag):调用这个方法后,文本节点会被包裹在你创建的FONT标签内部,最终对应的HTML结构会变成:
    <td><FONT COLOR="white">1/3/2014</FONT></td>
    

这样运行代码后,你就能看到1/3/2014被FONT标签正确包裹啦。

内容的提问来源于stack exchange,提问作者jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:08:29