尝试类似的方法,使用字段中的输入并将其填充到sting中,然后可以从该字符串中删除HTML标记,如下所示:
此函数可以为您剥离HTML,非常好,因为它只需要Python stdlib:
在Python 2上from HTMLParser import HTMLParser
class MLStripper(HTMLParser):
def __init__(self):
self.reset()
self.fed = []
def handle_data(self, d):
self.fed.append(d)
def get_data(self):
return ''.join(self.fed)
def strip_tags(html):
s = MLStripper()
s.feed(html)
return s.get_data()
对于Python 3
^{pr2}$
另一种方法是将文本解析为HTML并将该集合与已知的一组可接受的HTML元素相交,从而获得开始和结束标记。在#!/usr/bin/env python
from __future__ import print_function
from HTMLParser import HTMLParser
from html5lib.sanitizer import HTMLSanitizerMixin
class TestHTMLParser(HTMLParser):
def __init__(self, *args, **kwargs):
HTMLParser.__init__(self, *args, **kwargs)
self.elements = set()
def handle_starttag(self, tag, attrs):
self.elements.add(tag)
def handle_endtag(self, tag):
self.elements.add(tag)
def is_html(text):
elements = set(HTMLSanitizerMixin.acceptable_elements)
parser = TestHTMLParser()
parser.feed(text)
return True if parser.elements.intersection(elements) else False
print(is_html("foo bar"))
print(is_html("
Hello World!
"))print(is_html("
TitleHello!
")) # noqa输出:$ python foo.py
False
True
True
然后可以根据返回的true/false值验证提交。当然,你必须实现你自己的逻辑和过程