Уведомления

Группа в Telegram: @pythonsu

#1 Май 20, 2008 21:36:14

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

BeautifulSoup: как прочитать двойные кавычки?

Образец скрипта, который разбирает HTML:

# -*- coding: utf-8 -*-
import codecs, sys, os
from BeautifulSoup import BeautifulSoup
import urllib2
sys.stdout = codecs.getwriter('cp866')(sys.stdout, errors='replace')
f = urllib2.urlopen(urllib2.Request('http://luxter.nnm.ru/zenit_chempion_'))
soupHTML = BeautifulSoup(f.read())
f.close()
newText = soupHTML.find("div", {"class":"new-text"})
res = unicode(newText)
res = res.replace('<b>', '').replace('</b>', '')
res = res.replace('<i>', '').replace('</i>', '')
res = res.replace('<u>', '').replace('</u>', '')
res = res.replace(''', '\'').replace('&quot;', '"')
soupHTML = BeautifulSoup(res)
newText = soupHTML.find("div", {"class":"new-text"})
for elem in newText.contents:
    if type(elem).__name__ == 'NavigableString':
        if len(elem.strip()) > 0:
            print elem.strip()
Скрипт выводит разобранный текст, и в первом же предложении встречаются дурацкие двойные кавычки типа «», которые заданы в HTML-коде не примитивами, а “напрямую”. Суп их не понимает, и выводит вопросиками. Есть ли способ получить эти кавычки в Супе каким-то более вменяемым способом?



Офлайн

#2 Май 20, 2008 22:45:42

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

BeautifulSoup: как прочитать двойные кавычки?

Это что-то при выводе в консоль (при перекодировке в cp866 (?))
Выполнил это код в гуе с консолью cp1251, кавычки отображаются нормально =)



Офлайн

#3 Май 21, 2008 08:25:19

Все ники заняты
От:
Зарегистрирован: 2007-02-18
Сообщения: 156
Репутация: +  1  -
Профиль   Отправить e-mail  

BeautifulSoup: как прочитать двойные кавычки?

Действительно, если выводить в файл в UTF-8 или cp1251, то всё нормально (а в конечном счете мне это и нужно). Спасибо, вопрос снят :).



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version