def _sanitize_html_frags(html_value, valid_tags, valid_attributes):
fragments = html.fragments_fromstring(html_value)
for f in fragments:
if isinstance(f, html.HtmlElement):
_sanitize_html_rec(f, valid_tags, valid_attributes)
if f.tag in valid_tags:
_clean_attributes(f, valid_attributes)
yield html.tostring(f, encoding="unicode")
else:
if f.text:
yield f.text
for sub in f:
yield html.tostring(sub, encoding="unicode")
if f.tail:
yield f.tail
if f.tag in ('p', 'br'):
yield '\n'
else:
yield f
评论列表
文章目录