国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python正則獲取、過濾或者替換HTML標簽的方法

2020-01-04 17:47:51
字體:
供稿:網(wǎng)友
這篇文章主要介紹了Python通過正則表達式獲取、過濾或者替換HTML標簽的方法,感興趣的小伙伴們可以參考一下
 

本文實例介紹了Python通過正則表達式獲取,去除(過濾)或者替換HTML標簽的幾種方法,具體內(nèi)容如下

python正則表達式關(guān)鍵內(nèi)容:

python正則表達式轉(zhuǎn)義符:

. 匹配除換行符以外的任意字符/w 匹配字母或數(shù)字或下劃線或漢字/s 匹配任意的空白符/d 匹配數(shù)字/b 匹配單詞的開始或結(jié)束^ 匹配字符串的開始$ 匹配字符串的結(jié)束/W 匹配任意不是字母,數(shù)字,下劃線,漢字的字符/S 匹配任意不是空白符的字符/D 匹配任意非數(shù)字的字符/B 匹配不是單詞開頭或結(jié)束的位置[^x] 匹配除了x以外的任意字符[^aeiou] 匹配除了aeiou這幾個字母以外的任意字符

常用的python正則表達式限定符代碼/語法說明:

*重復零次或更多次+重復一次或更多次?重復零次或一次{n}重復n次{n,}重復n次或更多次{n,m}重復n到m次

關(guān)于python正則表達式命名組:

命名組:(?P<name>.....)這篇文章里面還提到了界定( 問號開頭,前向則有個'<'號,非則有個'!' 號 ):前向界定 (?<=…)后向界定 (?=…) 前向非界定 (?<!....)后向非界定 (?!.....)

Python通過正則表達式獲取,去除(過濾)或者替換HTML標簽代碼舉例

1、Python通過正則表達式取html中天氣信息代碼示例:

#!/usr/bin/env python #-*- coding: utf8 -*- import re   html = """   <h2>多云</h2> """   if __name__ == '__main__':   p = re.compile('<[^>]+>')   print p.sub("", html)Python通過正則表達式取html中溫度信息代碼示例:#!/usr/bin/env python #-*- coding: utf8 -*- import re   html = """   <div class="w-number"> <span class="tpte">14℃</span> </div> """   if __name__ == '__main__':   p = re.compile('<[^>]+>')   print p.sub("", html)

2、Python通過正則表達式去除(過濾)HTML標簽示例代碼:

# -*- coding: utf-8-*-import re##過濾HTML中的標簽#將HTML中標簽等信息去掉#@param htmlstr HTML字符串.def filter_tags(htmlstr):  #先過濾CDATA  re_cdata=re.compile('//<!/[CDATA/[[^>]*///]/]>',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('<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轉(zhuǎn)換為換行  s=re_h.sub('',s) #去掉HTML 標簽  s=re_comment.sub('',s)#去掉HTML注釋  #去掉多余的空行  blank_line=re.compile('/n+')  s=blank_line.sub('/n',s)  s=replaceCharEntity(s)#替換實體  return s##替換常用HTML字符實體.#使用正常的字符替換HTML中特殊的字符實體.#你可以添加新的實體字符到CHAR_ENTITIES中,處理更多HTML字符實體.#@param htmlstr HTML字符串.def replaceCharEntity(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')#去除&;后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 htmlstrdef repalce(s,re_exp,repl_string):  return re_exp.sub(repl_string,s)if __name__=='__main__':  s=file('169it.com_index.htm').read()  news=filter_tags(s)  print news

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 浮梁县| 成安县| 汉寿县| 台中市| 台中市| 扎赉特旗| 南漳县| 类乌齐县| 潮州市| 阿图什市| 灵寿县| 广丰县| 永春县| 金溪县| 砀山县| 南召县| 葫芦岛市| 喀喇沁旗| 石棉县| 太白县| 新营市| 鄱阳县| 汝阳县| 安福县| 婺源县| 海原县| 沐川县| 乐昌市| 许昌县| 彭州市| 普陀区| 新兴县| 昆山市| 岗巴县| 嘉峪关市| 江阴市| 建始县| 冀州市| 波密县| 安龙县| 玛曲县|