Source code for eWRT.input.conv.html

#!/usr/bin/env python
"""
 @package eWRT.input.conv.html
 converts HTML pages into text
"""

# (C)opyrights 2009-2010 by Albert Weichselbraun <albert@weichselbraun.net>
# 
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.


from eWRT.config import CMD_CONV
from eWRT.util.execute import pipe_content

[docs]class HtmlToText(object): """ converts HTML into text requires a converter """ @staticmethod
[docs] def getText(html_content, encoding="utf8"): """ @param[in] html_content the content of the html page to convert @param[in] encoding the document encoding @returns the text representation of the Web page """ # check whether this is really a html file if not "<" in html_content or not ">" in html_content: return html_content _, html = pipe_content( CMD_CONV['html'], html_content ) return html
[docs]class TestHtmlToText(object):
[docs] def testConversion(self): text = HtmlToText.getText( "<html><body><h1>Hallo</h1><ul><li>1</li><li>Jasna</li></ul></body></html>" ) assert 'Jasna' in text
[docs] def testBorderCases(self): assert HtmlToText.getText("") == "" assert HtmlToText.getText(" ") == " "