python去除html标签
re_cdata=re.compile('//]*//\]\]>',re.I) #匹配CDATA
re_script=re.compile('<\s*script[^>]*>[^<]*<\s*/\s*script\s*>',re.I) #Script
re_style=re.compile('<\s*style[^>]*>[^<]*<\s*/\s*style\s*>',re.I) #style
re_br=re.compile('
')#匹配html中的br标签 ,换行
re_h=re.compile('?\w+[^>]*>') #匹配HTML标签
s=re_h.sub('',s) #去掉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_comment.sub('',s)#去掉HTML注释
#去掉多余的空行
blank_line=re.compile('\n+')
s=blank_line.sub('\n',s)
filterTag = FilterTag()
s=filterTag.replaceCharEntity(s)#替换实体
print s
re_charEntity=re.compile(r'?(?P\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
re_h=re.compile('?\w+[^>]*>')#匹配HTML标签
s=re_h.sub('',htmlStr) #去掉HTML 标签
htmlStr.replace(/<[^>]+>/g," ")