Python去除html標(biāo)簽的幾種方法總結(jié)
Python去除html標(biāo)簽的方法
最近小說看得比較多,但是很多小說網(wǎng)站都存在各種小廣告,看起來很不方便,所以就自己寫了個小程序,把小說都爬下來,然后搭個自己喜歡web頁面來看。
在爬取過程中沒有出現(xiàn)太大的問題,只有在清洗數(shù)據(jù)時,發(fā)現(xiàn)小說文本中混雜HTML標(biāo)簽,所以就需要對標(biāo)簽進(jìn)行清洗。
我自己嘗試了字符串的處理方式,正則,還有l(wèi)xml等方式來處理這個問題,現(xiàn)在記錄一下使用方式。
我們使用下面這個字符串舉例說明,內(nèi)容為一段html代碼。需要對這段字符串進(jìn)行處理,提取文本
html = '<p>你好</p><br/><font>哈哈</font><b>大家好</b>'
1. 使用正則來處理
import re pattern = re.compile(r'<[^>]+>',re.S) result = pattern.sub('', html) print(result)
輸出結(jié)果:
你好哈哈大家好
2. 使用BeautifulSoup來處理
from bs4 import BeautifulSoup soup = BeautifulSoup(html,'html.parser') print(soup.get_text())
輸出結(jié)果:
你好哈哈大家好
3. 使用lxml來出來
from lxml import etree response = etree.HTML(text=html) # print(dir(response)) print(response.xpath('string(.)'))
輸出結(jié)果:
你好哈哈大家好
python正則表達(dá)式去除html標(biāo)簽的屬性
import re test='<p class="pictext" align="center">陳細(xì)妹</p>' test=re.sub(r'(<[^>\s]+)\s[^>]+?(>)', r'\1\2', test) print(test)
輸出
<p>陳細(xì)妹</p>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django Serializer HiddenField隱藏字段實例
這篇文章主要介紹了Django Serializer HiddenField隱藏字段實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03python函數(shù)與方法的區(qū)別總結(jié)
在本篇文章里小編給大家整理了關(guān)于python函數(shù)與方法的區(qū)別的相關(guān)知識點代碼內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-06-06利用pandas進(jìn)行數(shù)據(jù)清洗的7種方式
采集到原始的數(shù)據(jù)中會存在一些噪點數(shù)據(jù),噪點數(shù)據(jù)是對分析無意義或者對分析起到偏執(zhí)作用的數(shù)據(jù),所以這篇文章給大家介紹了利用pandas進(jìn)行數(shù)據(jù)清洗的7種方式,需要的朋友可以參考下2024-03-03