как разрешить ошибку UnicodeEncodeError при преобразовании в str

#python-3.x #beautifulsoup #python-requests

#python-3.x #beautifulsoup #python-запросы

Вопрос:

это мой код

 import requests as re
from bs4 import BeautifulSoup as bs
r = re.get("https://skidlamer.github.io/js/Skidfest.user.js")
soup = bs(r.text,"lxml")

with open("script.txt","w") as file:
    file.write(soup)
 

и это ошибка, которую я получаю

 File "C:UsersAnonymouseAppDataLocalProgramsPythonPython37libencodingscp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character 'U0001f4a9' in position 38190: character maps to <undefined>
 

Комментарии:

1. Вы уверены, что эта ошибка исходит из приведенного выше кода? Код выходит из строя на ранней file.write(soup) стадии .

2. Что именно вы хотите записать в файл? HTML? Вы хотите открыть файл в двоичном режиме. Попробуй with open("script.txt","wb") as file:

3. Когда я запускаю приведенный выше код в ubuntu, он показывает TypeError: write() argument must be str, not BeautifulSoup . после преобразования объекта soup в str. Его работа.

Ответ №1:

я добавил .encode(«utf-8») после преобразования объекта beautiful soup в тип str, и это сработало