X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=parse_html%2Fbkmk_ph_beautifulsoup4.py;h=1095ebce8d510c22df2c9768baed3c27777e1909;hb=ac86c51f608426450dfecc62163a52c9879d49ca;hp=182a123b402173d6a29c5e12d8971646541ba07f;hpb=9faa13f6f8199790cf01533e857c593520559649;p=bookmarks_db.git diff --git a/parse_html/bkmk_ph_beautifulsoup4.py b/parse_html/bkmk_ph_beautifulsoup4.py index 182a123..1095ebc 100644 --- a/parse_html/bkmk_ph_beautifulsoup4.py +++ b/parse_html/bkmk_ph_beautifulsoup4.py @@ -11,9 +11,10 @@ __license__ = "GNU GPL" __all__ = ['parse_html'] -import re from bs4 import BeautifulSoup + from .bkmk_ph_util import HTMLParser +from compat import string_type universal_charset = "utf-8" DEFAULT_CHARSET = "cp1251" # Stupid default for Russian Cyrillic @@ -55,8 +56,8 @@ def parse_html(html_text, charset=None, log=None): else: parts = [] for part in title: - if not isinstance(part, basestring): - part = unicode(part) + if not isinstance(part, string_type): + part = part.decode() parts.append(part.strip()) title = ''.join(parts) @@ -65,7 +66,8 @@ def parse_html(html_text, charset=None, log=None): try: meta_content = meta.get("content") if meta_content: - __charset = meta_content.lower().split('charset=')[1].split(';')[0] + __charset = meta_content.lower().split('charset=')[1].\ + split(';')[0] else: __charset = False except IndexError: # No charset in the META Content-Type @@ -82,12 +84,12 @@ def parse_html(html_text, charset=None, log=None): if meta_content: meta_charset = _charset = meta_content.lower() - if title and (_charset or meta_charset): - try: - title = title.encode(_charset or meta_charset) - except LookupError: - title = title.encode(universal_charset) - _charset = universal_charset + #if title and (_charset or meta_charset): + # try: + # title = title.encode(_charset or meta_charset) + # except LookupError: + # title = title.encode(universal_charset) + # _charset = universal_charset meta = head.find(_find_refresh, recursive=False) if meta: @@ -122,4 +124,5 @@ def _find_refresh(Tag): def _find_icon(Tag): return (Tag.name == "link") and \ - (Tag.get_attribute_list("rel", '')[0].lower() in ('icon', 'shortcut icon')) + (Tag.get_attribute_list("rel", '')[0].lower() + in ('icon', 'shortcut icon'))