X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=Robots%2Fparse_html.py;h=038cfaf7aa3b0e51be09518f001c9abbda240808;hb=3a680d85d6797a14cfed5e6df1d7b75ef1a516ee;hp=57f64985a58d5a096bc604acc37f2dbb9975a70b;hpb=51bccd4e33505fdbeb83f819f0a0b8fbb0dc9e1d;p=bookmarks_db.git diff --git a/Robots/parse_html.py b/Robots/parse_html.py index 57f6498..038cfaf 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]+;)") @@ -32,21 +32,22 @@ num_entity_re = re.compile("(&#[0-9]+;)") def recode_entities(title, charset): output = [] for part in entity_re.split(title): - if part not in ("&", "<", ">", ""e;", " ") and \ + 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):