Я извлекая HTML с некоторой веб-страницы с символами Unicode следующим образом:Unicode Исчезновение в html.parser
def extract(url):
""" Adapted from Python3_Google_Search.py """
user_agent = ("Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) "
"AppleWebKit/525.13 (KHTML, like Gecko)"
"Chrome/0.2.149.29 Safari/525.13")
request = urllib.request.Request(url)
request.add_header("User-Agent",user_agent)
response = urllib.request.urlopen(request)
html = response.read().decode("utf8")
return html
Я декодирование должным образом, как вы можете видеть. Итак, html
теперь является строкой unicode. При печати html я могу видеть символы Unicode.
Я использую html.parser
для разбора HTML и подклассы его:
from html.parser import HTMLParser
class Parser(HTMLParser):
def __init__(self):
## some init stuff
#### rest of class
При разборе вне HTML с использованием класса handle_data
, кажется, что символы Unicode удаляются/внезапно исчезают. В документах ничего не говорится о кодировках. Почему HTML Parser удаляет символы, отличные от ascii, и как я могу исправить такую проблему?
какая программа/инструмент вы используете для просмотра вывода? – bernie
1. Вы на 100% уверены, что данные, полученные вашим скриптом, имеют символы там, и 2. как вы проверяете, что символы не-ascii «исчезли»? –
Я использовал Emacs в терминале (имеет кодировку Unicode), а затем снова Mac TextEdit. – darksky