网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 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('[ \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()
    运行结果:
    >>> ================================ RESTART ================================
    >>>
    Project: DeHTML
    Description :
    This small script is intended to allow conversion from HTML markup to plain text.
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/22 5:14:06