Python轉(zhuǎn)換HTML到Text純文本的方法
本文實例講述了Python轉(zhuǎn)換HTML到Text純文本的方法。分享給大家供大家參考。具體分析如下:
今天項目需要將HTML轉(zhuǎn)換為純文本,去網(wǎng)上搜了一下,發(fā)現(xiàn)Python果然是神通廣大,無所不能,方法是五花八門。
拿今天親自試的兩個方法舉例,以方便后人:
方法一:
1. 安裝nltk,可以去pipy裝
(注:需要依賴以下包:numpy, PyYAML)
2.測試代碼:
>>> aa = r'''''
<html>
<body>
<b>Project:</b> DeHTML<br>
<b>Description</b>:<br>
This small script is intended to allow conversion from HTML markup to
plain text.
</body>
</html>
'''
>>> aa
'\n<html>\n <body>\n <b>Project:</b> DeHTML<br>\n <b>Description</b>:<br>\n This small script is intended to allow conversion from HTML markup to \n plain text.\n </body>\n </html>\n '
>>> <strong>print nltk.clean_html(aa)</strong>
Project: DeHTML
Description :
This small script is intended to allow conversion from HTML markup to
plain text.
方法二:
如果覺得nltk太笨重,大材小用的話,可以自己寫代碼,代碼如下:
from re import sub
from sys import stderr
from traceback import print_exc
class _DeHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.__text = []
def handle_data(self, data):
text = data.strip()
if len(text) > 0:
text = sub('[ \t\r\n]+', ' ', text)
self.__text.append(text + ' ')
def handle_starttag(self, tag, attrs):
if tag == 'p':
self.__text.append('\n\n')
elif tag == 'br':
self.__text.append('\n')
def handle_startendtag(self, tag, attrs):
if tag == 'br':
self.__text.append('\n\n')
def text(self):
return ''.join(self.__text).strip()
def dehtml(text):
try:
parser = _DeHTMLParser()
parser.feed(text)
parser.close()
return parser.text()
except:
print_exc(file=stderr)
return text
def main():
text = r'''''
<html>
<body>
<b>Project:</b> DeHTML<br>
<b>Description</b>:<br>
This small script is intended to allow conversion from HTML markup to
plain text.
</body>
</html>
'''
print(dehtml(text))
if __name__ == '__main__':
main()
運行結(jié)果:
>>> ================================ RESTART ================================
>>>
Project: DeHTML
Description :
This small script is intended to allow conversion from HTML markup to plain text.
希望本文所述對大家的Python程序設計有所幫助。
相關(guān)文章
解決使用Pycharm導入conda?environment時找不到python.exe
今天在使用conda創(chuàng)建環(huán)境之后,使用pycham發(fā)現(xiàn)找到自己的python環(huán)境但是找不到環(huán)境對應的python.exe,這篇文章主要給大家介紹了關(guān)于如何解決使用Pycharm導入conda?environment時找不到python.exe的相關(guān)資料,需要的朋友可以參考下
Python使用colorlog實現(xiàn)控制臺管理日志多種顏色顯示
colorlog 是一個 Python 日志庫,它可以讓你在控制臺中以彩色的方式顯示日志消息,使得日志更易于閱讀和理解,下面就跟隨小編一起來看看它的具體應用吧2024-03-03
Python實現(xiàn)的生成自我描述腳本分享(很有意思的程序)
這篇文章主要介紹了Python實現(xiàn)的生成自我描述腳本分享,很有意思的程序,繞的人有點頭暈,需要的朋友參考下吧2014-07-07
Python編程functools模塊創(chuàng)建修改的高階函數(shù)解析
本篇文章主要為大家介紹functools模塊中用于創(chuàng)建、修改函數(shù)的高階函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2021-09-09

