python對html過濾處理

2021-07-28 20:47:51 字數 1594 閱讀 5863

##過濾html中的標籤

#將html中標籤等資訊去掉

#@param htmlstr html字串.

deffilter_tags

(htmlstr):

#先過濾cdata

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('

')#處理換行

re_h=re.compile(']*>')#html標籤

re_comment=re.compile('')#html注釋

re_stopwords=re.compile('\u3000')#去除無用的'\u3000'字元

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轉換為換行

s=re_h.sub('',s) #去掉html 標籤

s=re_comment.sub('',s)#去掉html注釋

s=re_stopwords.sub('',s)

#去掉多餘的空行

blank_line=re.compile('\n+')

s=blank_line.sub('\n',s)

s=replacecharentity(s)#替換實體

return s

##替換常用html字元實體.

#使用正常的字元替換html中特殊的字元實體.

#你可以新增新的實體字元到char_entities中,處理更多html字元實體.

#@param htmlstr html字串.

defreplacecharentity

(htmlstr):

char_entities=

re_charentity=re.compile(r'&#?(?p\w+);')

sz=re_charentity.search(htmlstr)

while sz:

entity=sz.group()#entity全稱,如》

key=sz.group('name')#去除&;後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

php對html標籤的處理

處理html標籤的話 這裡用到了 htmlspecialchars 函式 引數為 要處理的字串 返回值為 處理後的字元 詳情見 php手冊 使用 htmlspecialchars去處理 字串 new htmlspecialchars test echo new test 如何去重新轉義回來。這裡呢。...

過濾器對ajax請求的處理

當過濾器遇到ajax呼叫時無法正常返回情況,需要在過濾器中對ajax呼叫進行處理,示例如下 判斷是否是ajax請求 若是返回true則不能用response.sendredirect 來跳轉,此時需要乙個ajax全域性方法jquery.ajaxsetup,如下 全域性的ajax訪問,處理ajax清求...

Python處理HTML轉義字元

抓網頁資料經常遇到例如 或者這種html轉義符,抓到字串裡很是煩人。比方說乙個從網頁中抓到的字串 html 用python可以這樣處理 import htmlparser html parser htmlparser.htmlparser txt html parser.unescape html ...