Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 18, 2011 20:38:17

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Кодировка в BeautifulSoup

Всем привет. установил BeautifulSoup решил попробовать, но возникли проблемы с кодировкой

вот код

import urllib2
from BeautifulSoup import BeautifulSoup

f = urllib2.urlopen('http://www.yandex.ru/')


soup = BeautifulSoup(f, fromEncoding="utf-8")

print soup.find('title')

print soup.originalEncoding
Написал в IDLE title вывел кракозяброй. Что не так?

Python 2.7



Отредактировано (Окт. 18, 2011 20:40:34)

Офлайн

#2 Окт. 18, 2011 21:15:24

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Кодировка в BeautifulSoup

Дело в выводе самого IDLE

Тк в файл записывает нормально.

А как можно поменять кодировку в IDLE чтобы правильно выводило русский?



Офлайн

#3 Окт. 18, 2011 21:50:28

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Кодировка в BeautifulSoup

А если писать soup.find('title').string тогда нормально русский выводит. Кто что скажет?



Офлайн

#4 Окт. 18, 2011 23:09:21

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Кодировка в BeautifulSoup

import urllib2
from BeautifulSoup import BeautifulSoup

f = urllib2.urlopen('http://www.yandex.ru/')


soup = BeautifulSoup(f, fromEncoding="utf-8")
s = str(soup.find('title'))
print s
print s.decode('utf8')
print soup.originalEncoding

#<title>Яндекс</title>
#<title>Яндекс</title>
utf-8



Офлайн

#5 Окт. 19, 2011 11:33:39

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Кодировка в BeautifulSoup

sp3
import urllib2
from BeautifulSoup import BeautifulSoup

f = urllib2.urlopen('http://www.yandex.ru/')


soup = BeautifulSoup(f, fromEncoding="utf-8")
s = str(soup.find('title'))
print s
print s.decode('utf8')
print soup.originalEncoding

#<title>Яндекс</title>
#<title>Яндекс</title>
utf-8
Если оригинальная кодировка utf-8 то зачем ещё s.decode('utf8') ?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version