X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=parse_html%2Fbkmk_ph_html5.py;h=6d0d38094bea6bd8935b4ddb29455ca458cd7cbf;hb=256d50445f3fb777a9a2561c7b1f71ccf5ccf6b2;hp=53109be72fd761f874a92723f0eb4d606c47b11f;hpb=1249f2d538e9d679421d7bbb59dfac33fad537f4;p=bookmarks_db.git diff --git a/parse_html/bkmk_ph_html5.py b/parse_html/bkmk_ph_html5.py index 53109be..6d0d380 100644 --- a/parse_html/bkmk_ph_html5.py +++ b/parse_html/bkmk_ph_html5.py @@ -1,10 +1,11 @@ """HTML Parser using html5 This file is a part of Bookmarks database and Internet robot. + """ __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2010-2013 PhiloSoft Design" +__copyright__ = "Copyright (C) 2010-2014 PhiloSoft Design" __license__ = "GNU GPL" __all__ = ['parse_html'] @@ -14,19 +15,17 @@ from html5lib import HTMLParser as HTML5Parser from .bkmk_ph_util import HTMLParser -def parse_html(filename, charset=None, log=None): +def parse_html(html_text, charset=None, log=None): parser = HTML5Parser() - fp = open(filename) - parser._parse(fp, encoding=charset, parseMeta=bool(charset)) - fp.close() - html_tree = parser.tree.getDocument() - - for node in html_tree.childNodes: - if (node.name == 'html') and (node.type != 3): # Skip DocType element - html = node - break - else: - html = None + html_tree = parser.parse(html_text, encoding=charset, parseMeta=bool(charset)) + + html = None + if hasattr(html_tree, 'childNodes'): + for node in html_tree.childNodes: + # Skip DocType element + if (node.name == 'html') and (node.type != 3): + html = node + break if not html: return None