BeautifulSoup “codificar (” utf-8 “)

from bs4 import BeautifulSoup import urllib.request link = ('https://mywebsite.org') req = urllib.request.Request(link, headers={'User-Agent': 'Mozilla/5.0'}) url = urllib.request.urlopen(req).read() soup = BeautifulSoup(url, "html.parser") body = soup.find_all('div', {"class":"wrapper"}) print(body) 

Hola chicos, tengo un problema con este código. Si lo ejecuto viene el error.

UnicodeEncodeError: el codec ‘charmap’ no puede codificar el carácter ‘\ u2022’ en la posición 138: el carácter se asigna a

Intenté buscar y encontré que tenía que agregar

.encode (“utf-8”)

Pero si lo agrego viene el error.

AttributeError: el objeto ‘ResultSet’ no tiene atributo ‘codificar’

¿Cómo puedo resolver esto?

Lo siento por mi inglés pero soy italiano 🙂

Estás en Windows e intentas imprimir en la consola. El print() está lanzando la excepción.

La consola de Windows solo admite de forma nativa las páginas de códigos de 8 bits, por lo que cualquier cosa fuera de su región se romperá (a pesar de lo que diga la gente sobre chcp 65001 ).

Debe instalar y utilizar https://github.com/Drekin/win-unicode-console . Este módulo habla en un nivel bajo a la API de la consola, dando soporte para caracteres de múltiples bytes.

Alternativamente, no imprima en la consola y escriba su salida en un archivo, abierto con una encoding. Por ejemplo:

 with open("myoutput.log", "w", encoding="utf-8") as my_log: my_log.write(body)