zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python 去除html标签的代码详解编程语言

PythonHTML编程语言代码 详解 标签 去除
2023-06-13 09:20:24 时间
re_cdata=re.compile(// !/[CDATA/[[^ ]*///]/] ,re.I) #匹配CDATA re_script=re.compile( /s*script[^ ]* [^ ]* /s*//s*script/s* ,re.I)#Script re_ /s*style[^ ]* [^ ]* /s*//s*style/s* ,re.I)#style re_br=re.compile( br/s*?/? )#处理换行 re_h=re.compile( /?/w+[^ ]* )#HTML标签 re_comment=re.compile( !--[^ ]*-- )#HTML注释 s=re_cdata.sub(,htmlStr)#去掉CDATA s=re_script.sub(,s) #去掉SCRIPT s=re_style.sub(,s)#去掉style s=re_br.sub(/n,s)#将br转换为换行 blank_line=re.compile(/n+)#去掉多余的空行 s = blank_line.sub(/n,s) s=re_h.sub(,s) #去掉HTML 标签 s=re_comment.sub(,s)#去掉HTML注释 #去掉多余的空行 blank_line=re.compile(/n+) s=blank_line.sub(/n,s) filterTag = FilterTag() s=filterTag.replaceCharEntity(s)#替换实体 print s def replaceCharEntity(self,htmlStr): 替换html中常用的字符实体 使用正常的字符替换html中特殊的字符实体 可以添加新的字符实体到CHAR_ENTITIES 中 CHAR_ENTITIES是一个字典前面是特殊字符实体 后面是其对应的正常字符 :param htmlStr: self.htmlStr = htmlStr CHAR_ENTITIES={nbsp: ,160: , lt: ,60: , gt: ,62: , amp: ,38: , quot:",34:",} re_charEntity=re.compile(r #?(?P name /w+);) sz=re_charEntity.search(htmlStr) while sz: entity=sz.group()#entity全称,如 key=sz.group(name)#去除 后的字符如(" "--- key = "nbsp") 去除 后entity,如 为gt try: htmlStr= re_charEntity.sub(CHAR_ENTITIES[key],htmlStr,1) sz=re_charEntity.search(htmlStr) except KeyError: #以空串代替 htmlStr=re_charEntity.sub(,htmlStr,1) sz=re_charEntity.search(htmlStr) return htmlStr def replace(self,s,re_exp,repl_string): return re_exp.sub(repl_string)