From: Oleg Broytman Date: Sun, 24 Feb 2008 21:37:24 +0000 (+0000) Subject: Used name2codepoint directly; recode it. X-Git-Tag: v4.5.3~192 X-Git-Url: https://git.phdru.name/?a=commitdiff_plain;h=e7035a2a59f6a2cb55aa7ca852e2cff3b66b59d9;p=bookmarks_db.git Used name2codepoint directly; recode it. git-svn-id: file:///home/phd/archive/SVN/bookmarks_db/trunk@184 fdd5c36f-1aea-0310-aeeb-c58d7e2b6c23 --- diff --git a/Robots/parse_html.py b/Robots/parse_html.py index 57f6498..680ad55 100755 --- a/Robots/parse_html.py +++ b/Robots/parse_html.py @@ -24,7 +24,7 @@ parsers.append(parse_html) import re -from htmlentitydefs import entitydefs +from htmlentitydefs import name2codepoint entity_re = re.compile("(&\w+;)") num_entity_re = re.compile("(&#[0-9]+;)") @@ -34,19 +34,20 @@ def recode_entities(title, charset): for part in entity_re.split(title): if part not in ("&", "<", ">", ""e;", " ") and \ entity_re.match(part): - part = entitydefs.get(part[1:-1], part) + part = unichr(name2codepoint.get(part[1:-1], part)).encode(charset) output.append(part) + title = ''.join(output) - output2 = [] - for part in num_entity_re.split(''.join(output)): + output = [] + for part in num_entity_re.split(title): if num_entity_re.match(part): try: part = unichr(int(part[2:-1])).encode(charset) except UnicodeEncodeError: pass # Leave the entity as is - output2.append(part) + output.append(part) - return ''.join(output2) + return ''.join(output) def parse_html(filename, charset=None, log=None):