Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 28, 2010 07:42:23

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

Подвох с кодировкой

Пишу программку для опроса данных о герое через получение xml файла но загвоздка в том что я получаю не понятную кодировку. Долго пытал гугл но он ничего внятного не сказал. Прошу помощи. Код в студию:

# -*- coding: UTF-8 -*-
import re, urllib
username = "Аскард"
username=urllib.quote(username)
adr = "http://godville.net/gods/api/"+username+".xml"
def gett(tag,s):
reg = re.search(r"<"+tag+">.*</"+tag+">",s)
reg=reg.group()
reg=reg[len(tag)+2:len(reg)-len(tag)-3]
return reg
Tag_dict=("name","godname","gender","gold_approx","level","health","max_health","inventory_num","inventory_max_num","motto",\
"clan","quest_progress","exp_progress","godpower","alignment","quest","bricks_cnt","diary_last",\
"town_name","arena_fight")
def getd():
s = urllib.urlopen(adr).read()
for i in range(len(Tag_dict)):
print gett(Tag_dict[i],s)
getd()
на выходе веселые символы. Либо я не догоняю суть проблемы либо проблема не вовсе и проблема. Прошу у вас помощи так как за сегодняшнее утро от слова “кодировка” меня уже тошнит.



Отредактировано (Июнь 28, 2010 07:43:45)

Офлайн

#2 Июнь 28, 2010 08:49:42

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Подвох с кодировкой

это коды символов в html, штатной ф-ии сейчас не вспомню, вот те регекс

         print re.sub(r'&#(\d+);', lambda x:unichr(int(x.groups()[0])), gett(Tag_dict[i],s))

Офлайн

#3 Июнь 28, 2010 08:51:35

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Подвох с кодировкой

а вообще можно какой-нибудь xml парсер заюзать

Офлайн

#4 Июнь 28, 2010 13:08:00

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

Подвох с кодировкой

o7412369815963
а вообще можно какой-нибудь xml парсер заюзать
Считаю что это слишком жирно для этой задачи



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version