python - UnicodeEncodeError : 'charmap' codec can't encode characters

标签 python beautifulsoup urllib

我正在尝试抓取一个网站,但它给了我一个错误。

我正在使用以下代码:

import urllib.request
from bs4 import BeautifulSoup

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

soup = BeautifulSoup(html)

print(soup)

我收到以下错误:

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>

我能做些什么来解决这个问题?

最佳答案

将抓取的网页内容保存到文件时,我得到了相同的 UnicodeEncodeError。为了修复它,我替换了这段代码:

with open(fname, "w") as f:
    f.write(html)

用这个:

with open(fname, "w", encoding="utf-8") as f:
    f.write(html)

如果你需要支持 Python 2,那么使用这个:

import io
with io.open(fname, "w", encoding="utf-8") as f:
    f.write(html)

如果您想使用不同于 UTF-8 的编码,请为 encoding 指定您的实际编码。

关于python - UnicodeEncodeError : 'charmap' codec can't encode characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092833/

相关文章:

python - 为使用 urllib.urlretrieve 下载的文件添加时间戳

python-3.x - urllib 无法读取 https

python - 将标准缩放器应用于投票分类器中的一个模型

python - BeautifulSoup 获取具有特定类的 div 中所有 img 的多个元素

python - 从维基百科表格中提取数据(剧集标题)

python - 使用python从Instagram收集用户信息

python - 使用 urllib.urlopen 时获取文件名

python - 使用 pisa 和非 ascii 字符创建 PDF

python - 从另一个线程调用线程中的方法,python

python - 比较两个字符串中是否存在元音的函数