Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 18, 2012 12:06:45

SergiK
От:
Зарегистрирован: 2011-06-13
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу справится с кракозябрами

Доброго времени суток.
Вобщем нужно мне написать небольшую программку для переноса каталога сайта в базу. Все вроде бы работает, но вот при считывании появляются какие-то кракозябы, но на сайте то все норм!?

for kat in kats_from_db:
        pageForParse = lxml.html.document_fromstring(urlopen(kat[2]).read()) 
        parsed_data_active = pageForParse.xpath('.//td[@class="submenuactive"]/a')
        parsed_data = pageForParse.xpath('.//td[@class="submenu"]/a')
        
        print "Считываются подкатегории для категории" + kat[1]
        
        for item1 in parsed_data_active:
            podkat.append({'kategory': kat[0], 'name': item1.text, 'href': item1.attrib['href']})
            print item1.text
и вот такие артефакты вылазят


Какие мысли на эту тему имеются, я уже не знаю что думать:(



Отредактировано SergiK (Июнь 18, 2012 12:07:30)

Прикреплённый файлы:
attachment 111.png (2,2 KБ)

Офлайн

#2 Июнь 18, 2012 12:25:20

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не могу справится с кракозябрами

# -*- coding:utf-8 -*-
????



Офлайн

#3 Июнь 18, 2012 12:28:47

SergiK
От:
Зарегистрирован: 2011-06-13
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу справится с кракозябрами

FishHook
# -*- coding:utf-8 -*-
????
Конечно же есть.



Офлайн

#4 Июнь 18, 2012 12:31:25

SergiK
От:
Зарегистрирован: 2011-06-13
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу справится с кракозябрами

Может это lxml так себя ведет?



Офлайн

#5 Июнь 18, 2012 12:35:52

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Не могу справится с кракозябрами

SergiK, проверьте кодировку файла с кодом и документа. Неожиданностей тут не бывает.



Офлайн

#6 Июнь 18, 2012 12:38:53

SergiK
От:
Зарегистрирован: 2011-06-13
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу справится с кракозябрами

fata1ex
SergiK, проверьте кодировку файла с кодом и документа. Неожиданностей тут не бывает.
Кодировка страницы UTF-8. Страница частично испорчена, но те данные которые я оттуда беру нормальные. Т.е. браузер их нормально отображает.



Офлайн

#7 Июнь 18, 2012 12:41:50

SergiK
От:
Зарегистрирован: 2011-06-13
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу справится с кракозябрами

fata1ex
попытался сделать так:

page.decode('UTF-8')
получил:
UnicodeDecodeError: ‘utf8’ codec can't decode bytes in position 324-326: invalid data
и так:
page.decode('cp1251').decode('UTF-8')
и
UnicodeDecodeError: ‘charmap’ codec can't decode byte 0x98 in position 10434: character maps to <undefined>



Офлайн

#8 Июнь 18, 2012 12:51:25

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Не могу справится с кракозябрами

SergiK, вы бы хоть ссылку на сайт дали.

Беспорядочное втыкание decode() помогает очень редко, надо понимать, что вы делаете и зачем.



Офлайн

#9 Июнь 18, 2012 12:54:10

SergiK
От:
Зарегистрирован: 2011-06-13
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу справится с кракозябрами

fata1ex
SergiK, вы бы хоть ссылку на сайт дали.

Беспорядочное втыкание decode() помогает очень редко, надо понимать, что вы делаете и зачем.
К сожалению не могу, сайт не светится в сети(



Офлайн

#10 Июнь 18, 2012 12:57:16

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Не могу справится с кракозябрами

Значит проверяйте кодировки сайта и кода, как и писал выше. Посмотрите на koi8-r и другие возможные варианты кодировки сайта.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version