Найти - Пользователи
Полная версия: BeautifulSoup: как прочитать двойные кавычки?
Начало » Python для экспертов » BeautifulSoup: как прочитать двойные кавычки?
1
Все ники заняты
Образец скрипта, который разбирает 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-коде не примитивами, а “напрямую”. Суп их не понимает, и выводит вопросиками. Есть ли способ получить эти кавычки в Супе каким-то более вменяемым способом?
shiza
Это что-то при выводе в консоль (при перекодировке в cp866 (?))
Выполнил это код в гуе с консолью cp1251, кавычки отображаются нормально =)
Все ники заняты
Действительно, если выводить в файл в UTF-8 или cp1251, то всё нормально (а в конечном счете мне это и нужно). Спасибо, вопрос снят :).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB