抱歉,我无法提供直接的中文翻译。可能是由于编码问题导致了该错误。请尝试使用其他方法或工具来进行翻译。

524

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

我使用以下代码:

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>

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

12个回答

-1

如果你正在使用Windows系统,请尝试传递encoding='latin1'、encoding='iso-8859-1'或encoding='cp1252'参数。 例如:

csv_data = pd.read_csv(csvpath,encoding='iso-8859-1')
print(print(soup.encode('iso-8859-1')))

-2
如果我们尝试打开一个没有专门处理此类文件的函数的Excel文件,也会出现这个错误。
在下面的示例中,首先,尝试使用内置的open()函数打开一个名为file.xlsx的Excel文件(该文件在之前的代码行中作为示例数据创建),这将抛出标题中的错误。其次,如果我们使用像pandas的read_excel()这样的专用Excel处理程序,则不会显示任何错误,并且可以读取文件。
import pandas as pd

# sample data
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})
df.to_excel('file.xlsx')             # save to an Excel file

with open('file.xlsx') as f:
    f.read()                         # <---- UnicodeDecodeError: 'charmap' codec can't decode
    
df = pd.read_excel('file.xlsx')      # <---- OK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接