如何使用Beautiful Soup替换带有span的过时字体标记

时间:2013-09-26 14:27:44

标签: python html beautifulsoup

我们需要将在TinyMCE中生成的过时字体标记迁移到CMS中的新span标记。

<font face="timesnewroman,times" size="7"><child>something</child></font>

<span style="font-family: timesnewroman,times; font-size: 12pt;"><child>something</child></span>

如何使用BeautifulSoup优先使用? (目前我使用的是3.2.1版本) 如果Python有任何替代字体的方法,请告诉我 - &gt;如上所述设置样式属性的span标记?我知道很少的方法,如replaceWithChildren,但不会做我需要的。有什么想法吗 ?

1 个答案:

答案 0 :(得分:1)

import BeautifulSoup as bp

soup = bp.BeautifulSoup('<font face="timesnewroman,times" size="7"><child>something</child></font>')


for t in soup.findAll('font'):

    t['style'] = 'font-family: %s; font-size: %s' % (t['face'], t['size'])

    del t['face']
    del t['size']
    t.name = 'span'

    print t

输出:

<span style="font-family: timesnewroman,times; font-size: 7"><child>something</child></span>

这是基本的想法。显然,您应该检查属性是否存在,否则将引发异常。