Creo que estas dandole demasiadas vueltas.
Mi recomendacion es que trabajes siempre con unicode.

Por lo que explicas quieres algo asi:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Python

import urllib
from bs4 import BeautifulSoup

url = 'https://www.yandex.ru/'

req = urllib.request.Request(url, data=None, headers={'User-Agent':
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/35.0.1916.47 Safari/537.36'})
html = urllib.request.urlopen(req).read()

soup = BeautifulSoup(html)
title_text = soup.find('title').text
# el titulo ya es un unicode, o 'str' en python3x
print("Type of title: ".format(type(title_text)))
print(f"Title of the page: {title_text}")

# si quieres convertilo a cp1251, pero yo trabajaria siempre con unicode
title_encoded_cp1251 =  title_text.encode('cp1251')

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



echale un ojo a esta presentacion que te aclarara muchas cosas:
http://farmdev.com/talks/unicode/


Un saludo

El jue., 1 nov. 2018 a las 12:35, Ander Garmendia (<kelertx...@gmail.com>)
escribió:

> Hola,
>
> tiene pinta de que al scrapear la página no estás ulizando el codec
> adecuado (creo que pusiste cp1251) y por lo tanto el programa no es capaz
> de interpretar el texto.
>
> Primero, cerciorarte del encoding que están ulizando esas páginas web y
> utiliza ese encoding en BeautifulSoup para obtener el contenido ( no
> conozco la librería, por lo que no te puedo decir mas, pero seguro que hay
> alguna manera de definir el encoding).
>
> Una vez que tienes el contenido bien descodificado, puedes trabajar con el
> tranquilamente, ya que Python3 trabaja con bytes.
>
> Para terminar si quieres guardar el contenido tendrás que volver a
> codificarlo, preferiblemente en UTF8, y como te han comentado en los
> ejemplos que te han enviado anteriormente.
>
> Un saludo.
>
>
>
> El jue., 1 nov. 2018 11:59, Pixu Kideak <pixukid...@gmail.com> escribió:
>
>> Hola,
>>
>> En la prueba que estoy realizando, utilizo BeautifulSoup [
>> https://www.crummy.com/software/BeautifulSoup/bs4/doc/] con Python 3.7.
>>
>> Mi objetivo es mediante BeautifulSoup tener todo el código de la página y
>> por ejemplo almacenar el título de ésta en un fichero CSV. (En realidad se
>> tratan de más datos de la web que lo realiza mediante un búcle recorriendo
>> las distintas webs existentes; pero creo que es suficiente si consigo
>> almacenar el título de la web que tiene letras del alfabeto cirílico en el
>> fichero CSV).
>>
>> Primeramente quiero verlo todo en consola, así soy capaz de obtener el
>> título de la web y pintarlo en la consola; pero a la hora de mostrarlo, no
>> me muestra los caracteres cirílicos  sino "????" es por eso que enfocaba el
>> problema cómo si se tratara de un problema de encoding.
>>
>> Un saludo,
>>
>> On Thu, 1 Nov 2018 at 08:11, Angel Lis <anlis...@gmail.com> wrote:
>>
>>> Hola,
>>> en Python3 todo texto es unicode por defecto y el encoding del source es
>>> siempre unicode.
>>> En este pagina te lo explica:
>>>
>>> https://docs.python.org/3.0/whatsnew/3.0.html#text-vs-data-instead-of-unicode-vs-8-bit
>>>
>>> Un saludo.
>>>
>>> El mié., 31 oct. 2018 a las 14:24, Sergio Fernández (<ser...@wikier.org>)
>>> escribió:
>>>
>>>> Primero, definiendo en la cabecera de tus ficheros
>>>> https://docs.python.org/2.3/whatsnew/section-encodings.html
>>>>
>>>> #!/usr/bin/env python
>>>> # -*- coding: UTF-8 -*-
>>>>
>>>> Segundo, defiendo explicitamente el encoding cuando abres ficheros para
>>>> lectura/escritura:
>>>>
>>>> open('some.csv', encoding='utf-8')
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Wed, Oct 31, 2018 at 6:16 AM Pixu Kideak <pixukid...@gmail.com>
>>>> wrote:
>>>>
>>>>> Gracias por el consejo Sergio.
>>>>>
>>>>> ¿Cómo podría forzar a que el script / app  fuera obligado a utilizar
>>>>> Unicode?
>>>>>
>>>>> Saludos ;-)
>>>>>
>>>>> On Wed, 31 Oct 2018 at 13:44, Sergio Fernández <ser...@wikier.org>
>>>>> wrote:
>>>>>
>>>>>> Utiliza siempre un encoding independiente de la plataforma que
>>>>>> soporte el juego de caracteres que necesitas. Unicode es tu amigo ;-)
>>>>>>
>>>>>> On Wed, Oct 31, 2018 at 5:36 AM Pixu Kideak <pixukid...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hola,
>>>>>>>
>>>>>>> Estoy trabajando en un entorno Windows con Python 3.7 y según veo en
>>>>>>> el encoding utilizo cp1252 - windows -1252 Western Europe.
>>>>>>>
>>>>>>> Quiero obtener información de una web con caracteres rusos y guardar
>>>>>>> la información en un fichero CSV.
>>>>>>>
>>>>>>> Según he visto el encoding necesario es cp1251 - windows - 1251 -
>>>>>>> Bulgarian, Byelorussian, Macedonian, Russian, Serbian.
>>>>>>>
>>>>>>> Pero no sé cómo puedo usarlo desde Python o qué debo hacer para
>>>>>>> poder grabar la información correctamente en el fichero CSV.
>>>>>>>
>>>>>>> ¿Alguien me podría mostrar algo de luz?
>>>>>>>
>>>>>>> Un saludo ;-)
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Python-es mailing list
>>>>>>> Python-es@python.org
>>>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sergio Fernández
>>>>>> http://www.wikier.org
>>>>>> _______________________________________________
>>>>>> Python-es mailing list
>>>>>> Python-es@python.org
>>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>>>
>>>>> _______________________________________________
>>>>> Python-es mailing list
>>>>> Python-es@python.org
>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>>
>>>>
>>>>
>>>> --
>>>> Sergio Fernández
>>>> http://www.wikier.org
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es@python.org
>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>
>>>
>>>
>>> --
>>> --
>>> Àngel Lis.
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es@python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>


-- 
--
Àngel Lis.
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

Reply via email to