各位用户为了找寻关于Python转换HTML到Text纯文本的方法的资料费劲了很多周折。这里教程网为您整理了关于Python转换HTML到Text纯文本的方法的相关资料,仅供查阅,以下为您介绍关于Python转换HTML到Text纯文本的方法的详细内容
本文实例讲述了Python转换HTML到Text纯文本的方法。分享给大家供大家参考。具体分析如下:
今天项目需要将HTML转换为纯文本,去网上搜了一下,发现Python果然是神通广大,无所不能,方法是五花八门。
拿今天亲自试的两个方法举例,以方便后人:
方法一:
1. 安装nltk,可以去pipy装
(注:需要依赖以下包:numpy, PyYAML)
2.测试代码:
代码如下: >>> import nltk >>> 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 HTMLParser import HTMLParser 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('[ trn]+', ' ', text) self.__text.append(text + ' ') def handle_starttag(self, tag, attrs): if tag == 'p': self.__text.append('nn') elif tag == 'br': self.__text.append('n') def handle_startendtag(self, tag, attrs): if tag == 'br': self.__text.append('nn') 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()
运行结果:
>>> ================================ RESTART ================================ >>> Project: DeHTML Description : This small script is intended to allow conversion from HTML markup to plain text.
希望本文所述对大家的Python程序设计有所帮助。