Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 8, 2010 11:30:28

VeNOm
От:
Зарегистрирован: 2010-01-07
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодировка

Граблю с сайта информацию

(12:48) xxx: \xd3\xe2\xe0\xe6\xe0\xe5\xec\xfb\xe5 \xf1\xee\xf2\xf0\xf3\xe4\xed\xe8\xea\xe8 *****, \xf1\xe5\xe3\xee\xe4\xed\xff \xe1\xf3\xe4\xe5\xf2 \xee\xf0\xe3\xe0\xed\xe8\xe7\xee\xe2\xe0\xed \xf7\xe5\xec\xef\xe8\xee\xed\xe0\xf2 \xef\xee \xc4\xce\xd2\xc5, \xe2 17:00 \xe6\xe4\xf3 \xe2\xf1\xe5\xf5 \xe6\xe5\xeb\xe0\xfe\xf9\xe8\xf5 \xe2 309 \xea\xee\xec\xed\xe0\xf2\xe5.<br>(13:23) xxx: \xd7\xe5\xec\xef\xe8\xee\xed\xe0\xf2 \xee\xf2\xec\xe5\xed\xff\xe5\xf2\xf1\xff! \xcc\xe5\xed\xff \xf3\xe2\xee\xeb\xe8\xeb\xe8 (((
как это в русский преобразовать?



Офлайн

#2 Янв. 8, 2010 11:45:01

Evgen
От:
Зарегистрирован: 2007-01-18
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодировка

"xf2\xec\xe5\xed\xff\xe5\xf2\xf1\xff! \xcc\xe5\xed\xff \xf3\xe2\xee\xeb\xe8\xeb\xe8 (((".decode("cp1251")



Отредактировано (Янв. 8, 2010 11:45:32)

Офлайн

#3 Янв. 8, 2010 11:53:10

VeNOm
От:
Зарегистрирован: 2010-01-07
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодировка

def bash():
res = urllib.request.urlopen('http://bash.org.ru/random')
res= str(res.read())
s=re.search(r"<div>(.*?)<\/div>",res)
s.groups().decode("cp1251")
print(s.groups())
s.groups().decode(“cp1251”)
AttributeError: ‘tuple’ object has no attribute ‘decode’



Офлайн

#4 Янв. 8, 2010 11:56:45

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Кодировка

да сколько можно… читайте учебники…

for x in s.groups():
print(x.decode('cp1251'))
текст ошибки ЯВНО указывает на ошибку!!!



Офлайн

#5 Янв. 8, 2010 12:07:40

VeNOm
От:
Зарегистрирован: 2010-01-07
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодировка

эххх

AttributeError: ‘str’ object has no attribute ‘decode’
библиотеку codecs импортировал

python v. 3.1



Офлайн

#6 Июнь 15, 2010 11:54:54

Gradient
От:
Зарегистрирован: 2009-06-03
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодировка

Декодировать лучше сразу:

res=str(res.read().decode('cp1251'))



Офлайн

#7 Июнь 15, 2010 12:29:45

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Кодировка

Gradient, раз уж поднял тему… зачем делать str для юникодной строки?



Офлайн

#8 Июнь 15, 2010 13:08:12

Gradient
От:
Зарегистрирован: 2009-06-03
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодировка

Согласен, незачем. Это был копипаст, над которым я недостаточно подумал :-)

Тут ещё вероятно с регекспом что-то или ещё с чем: возвращается только первая цитата со страницы. Глубоко не лазил.
Но текст получается.



Отредактировано (Июнь 15, 2010 13:48:40)

Офлайн

#9 Июнь 16, 2010 13:53:50

SETY
От:
Зарегистрирован: 2010-06-04
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодировка

# -*- coding: cp1251 -*-

print """\xd3\xe2\xe0\xe6\xe0\xe5\xec\xfb\xe5 \xf1\xee\xf2\xf0\xf3\xe4\
xed\xe8\xea\xe8 *****, \xf1\xe5\xe3\xee\xe4\xed\xff \xe1\xf3\xe4\xe5\xf2
\xee\xf0\xe3\xe0\xed\xe8\xe7\xee\xe2\xe0\xed \xf7\xe5\xec\xef\xe8\xee\xed\xe0\xf2 \xef\xee \xc4\xce\xd2\xc5, \xe2 17:00 \xe6\xe4\xf3 \xe2\xf1\xe5\xf5
\xe6\xe5\xeb\xe0\xfe\xf9\xe8\xf5 \xe2 309 \xea\xee\xec\xed\xe0\xf2\xe5 """
а вот и перевод
>>> 
Уважаемые сотрудxedики *****, сегодня будет
организован чемпионат по ДОТЕ, в 17:00 жду всех
желающих в 309 комнате
>>>



Офлайн

#10 Июнь 16, 2010 14:00:32

SETY
От:
Зарегистрирован: 2010-06-04
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Кодировка

или так

>>> print """\xd3\xe2\xe0\xe6\xe0\xe5\xec\xfb\xe5 \xf1\xee\xf2\xf0\xf3\xe4\xed\xe8\xea\xe8 *****, \xf1\xe5\xe3\xee\xe4\xed\xff \xe1\xf3\xe4\xe5\xf2 \xee\xf0\xe3\xe0\xed\xe8\xe7\xee\xe2\xe0\xed \xf7\xe5\xec\xef\xe8\xee\xed\xe0\xf2 \xef\xee \xc4\xce\xd2\xc5, \xe2 17:00 \xe6\xe4\xf3 \xe2\xf1\xe5\xf5 \xe6\xe5\xeb\xe0\xfe\xf9\xe8\xf5 \xe2 309 \xea\xee\xec\xed\xe0\xf2\xe5.<br>(13:23) xxx: \xd7\xe5\xec\xef\xe8\xee\xed\xe0\xf2 \xee\xf2\xec\xe5\xed\xff\xe5\xf2\xf1\xff! \xcc\xe5\xed\xff \xf3\xe2\xee\xeb\xe8\xeb\xe8"""
Уважаемые сотрудники *****, сегодня будет организован чемпионат по ДОТЕ, в 17:00 жду всех желающих в 309 комнате.<br>(13:23) xxx: Чемпионат отменяется! Меня уволили
>>>



Отредактировано (Июнь 16, 2010 14:01:45)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version