X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=Robots%2Fparse_html_beautifulsoup.py;h=9b0faded06ab92cb951b844421555776690118ff;hb=5feba7180442c65a199eaba8d6792fdbf1fc8aee;hp=d73e4c313a62a67570eb190dac14d5198499ef1b;hpb=9ce15336f7969a5a32eb8fe7e8996a953eaa4eb2;p=bookmarks_db.git diff --git a/Robots/parse_html_beautifulsoup.py b/Robots/parse_html_beautifulsoup.py index d73e4c3..9b0fade 100644 --- a/Robots/parse_html_beautifulsoup.py +++ b/Robots/parse_html_beautifulsoup.py @@ -1,7 +1,7 @@ """ HTML Parser using BeautifulSoup - Written by BroytMann. Copyright (C) 2007 PhiloSoft Design + Written by BroytMann. Copyright (C) 2007, 2008 PhiloSoft Design """ import re @@ -58,19 +58,35 @@ def parse_html(filename, charset=None): finally: infile.close() - _charset = root.originalEncoding try: - title = root.html.head.title.string.encode(_charset) + head = root.html.head except AttributeError: return None - meta = root.html.head.find(_find_refresh, recursive=False) + if head is None: + head = root.html # Some sites put TITLE in HTML without HEAD + + _charset = root.originalEncoding + try: + title = head.title.string.encode(_charset) + except AttributeError: + title = '' # HEAD but no TITLE + + if (not title) and (head is not root.html): + # Some sites put TITLE in HTML outside of HEAD + + try: + title = root.html.title.string.encode(_charset) + except AttributeError: + title = '' # no TITLE in HTML too + + meta = head.find(_find_refresh, recursive=False) if meta: refresh = meta.get("content") else: refresh = None - meta = root.html.head.find(_find_icon, recursive=False) + meta = head.find(_find_icon, recursive=False) if meta: icon = meta.get("href") else: