Python';s相当于PHP';什么是脱衣舞标签?
Python相当于PHP的strip_标记Python';s相当于PHP';什么是脱衣舞标签?,php,python,strip,Php,Python,Strip,Python相当于PHP的strip_标记 Python标准库中没有这样的东西。这是因为Python是一种通用语言,而PHP最初是一种面向Web的语言 不过,您有3种解决方案: 你赶时间,自己做吧re.sub(r']*?>','',value)可以是一个快速而肮脏的解决方案 使用第三方库(推荐使用,因为它更加防弹):这是一个非常好的库,并且没有什么可安装的,只需复制lib dir并导入即可 使用框架。大多数Web Python开发人员从不从头开始编写代码,他们使用的框架可以自动为您完成这些工作
Python标准库中没有这样的东西。这是因为Python是一种通用语言,而PHP最初是一种面向Web的语言 不过,您有3种解决方案:
- 你赶时间,自己做吧
可以是一个快速而肮脏的解决方案re.sub(r']*?>','',value)
- 使用第三方库(推荐使用,因为它更加防弹):这是一个非常好的库,并且没有什么可安装的,只需复制lib dir并导入即可李>
- 使用框架。大多数Web Python开发人员从不从头开始编写代码,他们使用的框架可以自动为您完成这些工作李>
- Python没有内置的,但是有一个。使用
对于内置PHP HTML函数,您不会发现很多内置Python等价物,因为Python更像是一种通用脚本语言,而不是一种web开发语言。对于HTML处理,通常建议使用 我使用HTMLParser类为python3构建了一个。它比PHP更冗长。我称之为HTMLCleaner类,您可以找到源代码,也可以找到示例。这有一个活动状态配方 这是旧代码,因此您必须将sgml解析器更改为HTMLparser,如注释中所述 这是修改后的代码import HTMLParser, string class StrippingParser(HTMLParser.HTMLParser): # These are the HTML tags that we will leave intact valid_tags = ('b', 'a', 'i', 'br', 'p', 'img') from htmlentitydefs import entitydefs # replace entitydefs from sgmllib def __init__(self): HTMLParser.HTMLParser.__init__(self) self.result = "" self.endTagList = [] def handle_data(self, data): if data: self.result = self.result + data def handle_charref(self, name): self.result = "%s&#%s;" % (self.result, name) def handle_entityref(self, name): if self.entitydefs.has_key(name): x = ';' else: # this breaks unstandard entities that end with ';' x = '' self.result = "%s&%s%s" % (self.result, name, x) def handle_starttag(self, tag, attrs): """ Delete all tags except for legal ones """ if tag in self.valid_tags: self.result = self.result + '<' + tag for k, v in attrs: if string.lower(k[0:2]) != 'on' and string.lower(v[0:10]) != 'javascript': self.result = '%s %s="%s"' % (self.result, k, v) endTag = '</%s>' % tag self.endTagList.insert(0,endTag) self.result = self.result + '>' def handle_endtag(self, tag): if tag in self.valid_tags: self.result = "%s</%s>" % (self.result, tag) remTag = '</%s>' % tag self.endTagList.remove(remTag) def cleanup(self): """ Append missing closing tags """ for j in range(len(self.endTagList)): self.result = self.result + self.endTagList[j] def strip(s): """ Strip illegal HTML tags from string s """ parser = StrippingParser() parser.feed(s) parser.close() parser.cleanup() return parser.result
导入HTMLPasser,字符串 类StrippingParser(HTMLParser.HTMLParser): #这些是我们将保持不变的HTML标记 有效的_标签=('b','a','i','br','p','img') 从htmlentitydefs导入entitydefs#从sgmllib替换entitydefs 定义初始化(自): HTMLParser.HTMLParser.\uuuuu初始化(self) self.result=“” self.endTagList=[] def句柄_数据(自身、数据): 如果数据: self.result=self.result+数据 def handle_charref(自身,名称): self.result=“%s%s;”%(self.result,name) def handle_entityref(自身,名称): 如果self.entitydefs.具有\u键(名称): x=';' 其他: #这打破了以“;”结尾的非标准实体 x='' self.result=“%s&%s%s”%(self.result,名称,x) def句柄\u开始标记(自身、标记、属性): “”“删除除合法标记以外的所有标记”“” 如果标记在self.valid_标记中: self.result=self.result+“” def handle_endtag(self,tag): 如果标记在self.valid_标记中: self.result=“%s”%(self.result,标记) remTag=''%tag self.endTagList.remove(remTag) def清理(自): “”“附加缺少的结束标记”“” 对于范围内的j(len(self.endTagList)): self.result=self.result+self.endTagList[j] def带: “”“从字符串s中删除非法HTML标记”“” parser=StrippingParser() parser.feed(s) parser.close() parser.cleanup() 返回parser.result
你可能想让他知道这是一个第三方库。实际上,我在谷歌上搜索了你建议的相同查询,但这些都没有让我感到足够高兴。请查看此感谢Gagandeep。你可以发布一个答案,我会投票的it@Hank对不起,有什么困惑。遗憾的是,这不再是一个好方法。来自漂白剂进口清洁剂 打印干净(“我的文本””,标记=[],条带=真,条带注释=真)
import HTMLParser, string class StrippingParser(HTMLParser.HTMLParser): # These are the HTML tags that we will leave intact valid_tags = ('b', 'a', 'i', 'br', 'p', 'img') from htmlentitydefs import entitydefs # replace entitydefs from sgmllib def __init__(self): HTMLParser.HTMLParser.__init__(self) self.result = "" self.endTagList = [] def handle_data(self, data): if data: self.result = self.result + data def handle_charref(self, name): self.result = "%s&#%s;" % (self.result, name) def handle_entityref(self, name): if self.entitydefs.has_key(name): x = ';' else: # this breaks unstandard entities that end with ';' x = '' self.result = "%s&%s%s" % (self.result, name, x) def handle_starttag(self, tag, attrs): """ Delete all tags except for legal ones """ if tag in self.valid_tags: self.result = self.result + '<' + tag for k, v in attrs: if string.lower(k[0:2]) != 'on' and string.lower(v[0:10]) != 'javascript': self.result = '%s %s="%s"' % (self.result, k, v) endTag = '</%s>' % tag self.endTagList.insert(0,endTag) self.result = self.result + '>' def handle_endtag(self, tag): if tag in self.valid_tags: self.result = "%s</%s>" % (self.result, tag) remTag = '</%s>' % tag self.endTagList.remove(remTag) def cleanup(self): """ Append missing closing tags """ for j in range(len(self.endTagList)): self.result = self.result + self.endTagList[j] def strip(s): """ Strip illegal HTML tags from string s """ parser = StrippingParser() parser.feed(s) parser.close() parser.cleanup() return parser.result
from bleach import clean print clean("<strong>My Text</strong>", tags=[], strip=True, strip_comments=True)