Python UnicodeEncodeError求助:charmap无法编码特定位置字符
解决UnicodeEncodeError: 'charmap'编码问题
不用额外安装Python库哦!这个报错根本不是缺库导致的,是Windows控制台默认编码(charmap)没法处理网页里的特殊字符才触发的。下面给你几个简单的解决办法:
调整print语句的错误处理策略
直接修改print代码,让它忽略或者替换无法编码的字符:# 忽略无法编码的字符 print(soup.prettify(errors='ignore')) # 或者把无法编码的字符替换成? print(soup.prettify(errors='replace'))强制标准输出用UTF-8编码
在代码开头加上几行,让控制台输出强制用UTF-8:import sys sys.stdout.reconfigure(encoding='utf-8') # 之后再执行你的原有代码 import requests page = requests.get("https://fred.stlouisfed.org/series/IC4WSA") from bs4 import BeautifulSoup soup = BeautifulSoup(page.content, 'html.parser') print(soup)把内容保存到文件查看(更稳妥)
如果只是想查看网页解析后的内容,直接保存到UTF-8编码的HTML文件里反而更方便:import requests page = requests.get("https://fred.stlouisfed.org/series/IC4WSA") from bs4 import BeautifulSoup soup = BeautifulSoup(page.content, 'html.parser') # 保存到文件 with open('parsed_page.html', 'w', encoding='utf-8') as file: file.write(soup.prettify())之后直接打开生成的
parsed_page.html文件就能看到完整内容了,完全不会有编码问题。
总结一下:你的requests和BeautifulSoup环境没问题,只是输出环节的编码不兼容,用上面任意一种方法都能解决~
内容的提问来源于stack exchange,提问作者SBF12345
相关产品推荐
相关产品推荐

