]> git.phdru.name Git - bookmarks_db.git/blobdiff - Robots/parse_html.py
Fake headers to pretend this is a real browser.
[bookmarks_db.git] / Robots / parse_html.py
index 4117b5fd2c00bd0256db024ddb3864be99362d4a..d3870fa210b8c3bdeefdac3c45d05aa13ec6cc1a 100755 (executable)
@@ -30,7 +30,10 @@ def recode_entities(title, charset):
    output = []
    for part in entity_re.split(title):
       if entity_re.match(part):
-         part = unichr(int(part[2:-1])).encode(charset, "replace")
+         try:
+            part = unichr(int(part[2:-1])).encode(charset)
+         except UnicodeEncodeError:
+            pass # Leave the entity as is
       output.append(part)
 
    return ''.join(output)
@@ -84,8 +87,9 @@ def parse_html(filename, charset=None, log=None):
          if log: log("   unknown charset: `%s' or `%s'" % (parser.charset, current_charset))
 
    title = recode_entities(title, current_charset)
-   title = title.replace('\r', '').replace('\n', ' ').strip()
-   if self.log: self.log("   final title    : %s" % title)
+   parts = [s.strip() for s in title.replace('\r', '').split('\n')]
+   title = ' '.join([s for s in parts if s])
+   if log: log("   final title    : %s" % title)
    parser.title = title
    return parser