【发布时间】:2026-02-17 09:30:01
【问题描述】:
from urllib.request import urlopen
html = urlopen("http://www.google.com/").read().decode('utf-8').replace("preview","")
from html.parser import HTMLParser
class MyHTMLParser(HTMLParser):
def handle_data(self, data):
if any(c.isalpha() for c in data):
print(data)
MyHTMLParser().feed(html)
input()
所以我正在尝试制作一个程序来查看网站并保存数据,然后显示 HTML 的主要数据。这将完美地与谷歌一起工作,也完美地在 IDLE 中工作,但任何其他带有 unicode 字符的站点,如 cmd 中的\u2605(黑星)或\u00A9(版权)都会产生错误。此错误会立即关闭 cmd 窗口。回溯是:
"UnicodeEncodeError: 'charmap' 编解码器无法编码字符 '\u2122' 在第 8 位:字符映射到(未定义)”
我可以在网站上为大多数人提供很多 .(replace),但我确信有一种简单的方法可以将其转换为可以读取,或者只是将它们替换为 ""。
【问题讨论】:
标签: python parsing unicode decode encode