Другая ошибка BeautifulSoup 'charmap' code c не может закодировать символ - PullRequest
1 голос
/ 11 апреля 2020

Я надеюсь собрать данные из таблицы для пассажиров, проходящих через линии безопасности 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)

Есть есть какие-нибудь предложения?

1 Ответ

0 голосов
/ 11 апреля 2020

Хорошо, позвольте мне объяснить вам, что произошло на самом деле.

Прочитайте следующую ошибку:

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

Теперь со своей стороны, если запустил следующее:

print("\u2713")

Вывод будет следующим Unicode:

Я полагаю, что вы используете Windows, где его кодировкой по умолчанию является cp1252, а не UTF-8.

Вы можете проверить это с помощью следующего:

import sys

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

Или напрямую через cmd, выполнив следующую команду: chcp

Теперь вы можете изменить кодировку системы, открыв cmd и запустите следующий cmd:

cp 65001

Проверьте официальный do c.

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

обратите внимание, что если вы используете VSCode с Code-Runner, пожалуйста, запустите ваш код в терминале как py code.py или измените и добавьте следующую настройку:

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

Проверьте мой предыдущий ответ на похожую проблему здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...