Python 美化组错误';charmap';编解码器可以';t编码字符
这是我目前拥有的代码Python 美化组错误';charmap';编解码器可以';t编码字符,python,web,beautifulsoup,python-requests,Python,Web,Beautifulsoup,Python Requests,这是我目前拥有的代码 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36'} r = requests.get("http://www.google.com", headers=headers) page_text = r.text soup = BeautifulSoup(pag
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36'}
r = requests.get("http://www.google.com", headers=headers)
page_text = r.text
soup = BeautifulSoup(page_text, 'html.parser')
print(soup.prettify())
理论上,它应该向谷歌发送请求,取回文本,并使用beautifulsoup的美化方法()
下面是他们的示例代码(来自)
每次我运行此代码时,都会出现编解码器错误。这是一个精确错误的屏幕截图
找到了解决方案
解决方案不是使用print()从堆栈交换成员使用此print方法
def uprint(*objects, sep=' ', end='\n', file=sys.stdout):
enc = file.encoding
if enc == 'UTF-8':
print(*objects, sep=sep, end=end, file=file)
else:
f = lambda obj: str(obj).encode(enc, errors='backslashreplace').decode(enc)
print(*map(f, objects), sep=sep, end=end, file=file)
当终端/powershell无法打印从BeautifulSoup接收到的任何字符时,就会发生这种情况。有两种解决方法,第一种比第二种更好:
#coding=
或#-*-coding:-*-
来声明python应该使用什么编码
你会把蛇帮线放在哪里import sys
reload(sys)
sys.setdefaultencoding('utf8') # or whichever one you want to use.
这是不推荐的方法,因为它实际上是对sys模块的一种误用,但是如果您正在编写一个不太复杂的程序,它会在紧要关头工作那么,当您使用这两种方法时,它会给您带来什么错误?首先,我在程序的顶部添加了#coding=utf8,同样的错误。尝试第二种方法然后我尝试了系统部分。我明白这个问题名称错误:未定义名称“重新加载”。经过快速检查,python3出现了错误。尝试从imp导入重新加载
,问题是您的shell编码,cmd基本上是垃圾。如果我是你,我会为自己省去很多麻烦,安装cygwin或使用一个像样的ide。你会推荐什么ide?手把手,pycharm,他们有一个免费的社区版
import sys
reload(sys)
sys.setdefaultencoding('utf8') # or whichever one you want to use.