我正在尝试抓取一个网站,但它给了我一个错误。
我正在使用以下代码:
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/