相关疑难解决方法(0)

UnicodeEncodeError:'charmap'编解码器无法编码字符

我正在试图抓一个网站,但它给了我一个错误.

我正在使用以下代码:

import urllib.request
from bs4 import BeautifulSoup

get = urllib.request.urlopen("https://www.website.com/")
html = get.read()

soup = BeautifulSoup(html)

print(soup)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 70924-70950: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

python urllib beautifulsoup

152
推荐指数
8
解决办法
30万
查看次数

如何在Python 3中设置sys.stdout编码?

在Python 2中设置默认输出编码是一个众所周知的习惯用法:

sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
Run Code Online (Sandbox Code Playgroud)

这将sys.stdout对象包装在编解码器编写器中,该编解码器编写器以UTF-8编码输出.

但是,这种技术在Python 3中不起作用,因为sys.stdout.write()期望a str,但是编码的结果是bytes,并且当codecs尝试将编码的字节写入原始时发生错误sys.stdout.

在Python 3中执行此操作的正确方法是什么?

python unicode stdout python-3.x

56
推荐指数
7
解决办法
4万
查看次数

标签 统计

python ×2

beautifulsoup ×1

python-3.x ×1

stdout ×1

unicode ×1

urllib ×1