【问题标题】:Another BeautifulSoup error 'charmap' codec can't encode character另一个 BeautifulSoup 错误“charmap”编解码器无法编码字符
【发布时间】:2020-04-10 22:05:49
【问题描述】:

我希望从表格中抓取通过 TSA 安检通道的乘客的数据,但我不断收到此错误。

UnicodeEncodeError: 'charmap' codec can't encode character '\u2713' in position 33780: character maps to <undefined>

从此代码

url = "https://www.tsa.gov/coronavirus/passenger-throughput"
page = requests.get(url).content
soup = BeautifulSoup(page, features = 'lxml')
text = soup.get_text()
soup.prettify()

print(soup)

有什么建议吗?

【问题讨论】:

  • 您使用的是 Windows 吗?
  • @snakecharmerb 100% 他正在使用窗户。

标签: python python-3.x beautifulsoup


【解决方案1】:

好吧,让我为你解释一下到底发生了什么。

阅读以下错误:

UnicodeEncodeError: 'charmap' codec can't encode character '\u2713' in position 33780: character maps to <undefined>

如果运行以下命令,现在从我这边:

print("\u2713")

输出将如下Unicode:

我相信您使用的是默认编码为 cp1252 而不是 UTF-8 的 Windows。

您可以使用以下方法进行验证:

import sys

print(sys.getdefaultencoding())
print(sys.stdin.encoding)
print(sys.stdout.encoding)
print(sys.stderr.encoding)

或者直接通过cmd运行以下命令:chcp

现在您可以通过打开cmd 并运行以下cmd 来更改系统编码:

cp 65001

查看official 文档。

Identifier  .NET Name   Additional information
65001       utf-8       Unicode (UTF-8)

请注意,如果您将VSCodeCode-Runner 一起使用,请在终端中以py code.py 运行您的代码或更改附加以下设置:

{
    "code-runner.executorMap": {
        "python": "set PYTHONIOENCODING=utf8 && python"
    }
}

查看我之前的回答是否有类似问题here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-21
    • 2015-01-21
    相关资源
    最近更新 更多