python - 使用 python/BeautifulSoup 将 HTML 标记对替换为不同的标记对

标签 python html replace tags beautifulsoup

我需要用另一个标签替换一对匹配的 HTML 标签。 BeautifulSoup (4) 可能适合这项任务,但我以前从未使用过它,也没有在任何地方找到合适的例子,有人可以给我提示吗?

例如,这段 HTML 代码:

<font color="red">this text is red</font>

应该改成这样:

<span style="color: red;">this text is red</span>

开始和结束 HTML 标记可能不在同一行。

最佳答案

使用replace_with()来替换元素。使文档示例适应您的示例给出:

>>> from bs4 import BeautifulSoup
>>> markup = '<font color="red">this text is red</font>'
>>> soup = BeautifulSoup(markup)
>>> soup.font
<font color="red">this text is red</font>
>>> new_tag = soup.new_tag('span')
>>> new_tag['style'] = 'color: ' + soup.font['color']
>>> new_tag.string = soup.font.string
>>> soup.font.replace_with(new_tag)
<font color="red">this text is red</font>
>>> soup
<span style="color: red">this text is red</span>

关于python - 使用 python/BeautifulSoup 将 HTML 标记对替换为不同的标记对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15545594/

相关文章:

python - 如何将Excel文件中的像素值转换为图像?

python - 生成器表达式和生成器函数的区别

python - 如何用 2 位数字排序数字字典键

python - django rest框架中日期的国际化?

javascript - 仅在菜单点击时隐藏

r - 清理R中组内的数据

html - 使用 CSS 重新排列 html 表格

python - 使用Python网络抓取公交车时刻表

C# 用模式替换捕获的字符串?

powershell - 链式 powershell 替换命令是否一个接一个地执行?