]> git.phdru.name Git - bookmarks_db.git/blobdiff - Robots/parse_html_etreetidy.py
Try parser in order until the first one finds a title.
[bookmarks_db.git] / Robots / parse_html_etreetidy.py
index 65d42aeca65dfa932c5c9019347ca7d01150ecb7..5f8bd862bc5bd9e85197cf2950937ffb86b046e0 100644 (file)
@@ -20,19 +20,25 @@ def parse_html(filename, charset=None, log=None):
         if elem.tag.startswith(XHTML):
             elem.tag = elem.tag[len(XHTML):]
 
+    title = html_tree.findtext('head/title')
+    if title is None:
+        return None
+
     meta = html_tree.findall('head/meta')
     for m in meta:
         if m.get('http-equiv', '').lower() == 'content-type':
             meta_content = m.get("content")
             if meta_content:
-                meta_charset = \
-                    meta_content.lower().split('charset=')[1].split(';')[0]
-                break
+                try:
+                    meta_charset = \
+                        meta_content.lower().split('charset=')[1].split(';')[0]
+                    break
+                except IndexError:
+                    meta_charset = False
     else:
         meta_charset = False
 
-    title = html_tree.findtext('head/title')
-    if title and (charset or meta_charset):
+    if charset or meta_charset:
         title = title.encode(charset or meta_charset)
 
     for m in meta: