对于这种类型的事情,我建议将HTML解析器(例如BeautifulSoup或lxml)与专门的CSS解析器结合使用。我在使用cssutils软件包方面取得了成功。比起尝试使用正则表达式来匹配您可能在野外找到的任何CSS而言,您的时间要容易得多。
例如:
>>> import cssutils>>> css = 'width:150px;height:50px;float:right;'>>> s = cssutils.parseStyle(css)>>> s.widthu'150px'>>> s.heightu'50px'>>> s.keys()[u'width', u'height', u'float']>>> s.cssTextu'width: 150px;nheight: 50px;nfloat: right'>>> del s['width']>>> s.cssTextu'height: 50px;nfloat: right'
因此,使用它,您可以轻松地提取和 *** 作所需的CSS属性,并使用BeautifulSoup将它们直接插入HTML。但是,请注意
cssText属性中d出的换行符。我认为cssutils的设计目的是将内容格式化为独立的CSS文件,但它足够灵活,几乎可以满足您在此处所做的工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)