我抓取了一个网页(此处代码中的名称已更改)如下:
import requests
r = requests.get('https://www.samplewebpage.com')
然后我尝试将 r.text 写入文件,如下所示:
f = open ('filename', 'w')
f.write(r.text)
f.close()
我得到一个错误:
UnicodeEncodeError: 'charmap' codec can't encode character '\u20b9' in position 158691: character maps to <undefined>
r.encoding 显示 UTF-8。如何解决上述问题?
还尝试过以下方法: - 很少有其他随机网页,并且大多数情况下都能够运行代码而不会出现任何错误。 - 使用 r.content.decode('utf-8', 'ignore') 而不是 r.text,但错误与上面相同
我的环境/系统规范:
- Python 3.6.4
- Windows 8.1 专业版,64 位
- 从 https://www.python.org 安装的默认 IDLE .
- 也尝试过使用 Atom 中的脚本,但出现同样的错误。
当我在这个论坛上读到另一个类似的问题时,怀疑控制台编码不匹配,我再次确认 Atom 控制台设置为 UTF-8,尽管我相信控制台编码不是这里的问题,因为我想写一个文件。
谢谢
最佳答案
尝试显式指定文件的编码:
f = open ('filename', 'w', encoding='utf8')
f.write(r.text)
f.close()
关于python-3.x - Python请求: UnicodeEncodeError: 'charmap' codec can't encode character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49161335/