去除html标记lxml.html.clean.clean_html未按预期工作

2024-05-14 03:34:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一个字符串中除去除我指定的一些之外的所有html标记。 如果我使用默认值调用构造函数,则一切正常:

>>> cleaner = lxml.html.clean.Cleaner()
>>> cleaner.clean_html('''<i>italic</i><script>alert('');</script>''')
'<span><i>italic</i></span>'

但是当我试图指定一些标记时,事情就不起作用了:

^{pr2}$

我做错什么了?在


Tags: 字符串标记cleanhtmlscriptalert事情lxml
1条回答
网友
1楼 · 发布于 2024-05-14 03:34:31

作为一种解决方法,您可以将spandiv标记添加到allowed_tags。在

升级版

通过调用fromstring,将lxml.html.Cleanertries to convert字符串添加到html树中,它检查文档是否有根节点,并在必要时添加它。所以你需要允许^{} and ^{} tags

网友
2楼 · 发布于 2024-05-14 03:34:31

好像是只虫子。我在lxml==2.3.3版本中没有看到它:

>>> from lxml.html import clean
>>> clean.clean_html('''<i>italic</i><script>alert('');</script>''')
'<span><i>italic</i></span>'
>>> c = clean.Cleaner(allow_tags='is', remove_unknown_tags=False)
>>> c.clean_html('''<i>italic</i><s>strike</s>''')
'<div><i>italic</i><s>strike</s></div>'

相关问题 更多 >