Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 16, 2013 19:02:51

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Проблема с кодировкой кириллицы - BeautifulSoup и csv

roloyar
Закодированную в каком виде?
закодированную в какую-нибуть кодировку, в которой будет результирующий файл.

Офлайн

#2 Окт. 16, 2013 19:06:53

roloyar
Зарегистрирован: 2013-10-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой кириллицы - BeautifulSoup и csv

sanodin
кодировками пробуйте подобрать
Хорошо, спасибо, попробую. Переделать из списка в строку получается, но хотелось бы все-таки чтобы пропустить именно список списков и именно через csv. Просто таких страниц, как я привел в примере - очень много, я хотел, чтобы скрейпер проходил по каждой странице (я этот функционал уже написал, просто тут его приводить смысла не было), забирал текст и вписывал в csv. Чтобы я потом в экселе мог работать с таблицей. Наверное, слишком многого хочу

Офлайн

#3 Окт. 16, 2013 19:25:20

roloyar
Зарегистрирован: 2013-10-16
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой кириллицы - BeautifulSoup и csv

Короче я тут еще по интернетам и по форуму порылся, нашел эту ветку: http://python.su/forum/topic/1073/

У меня вся загвоздка, как мне кажется, в том, что если брать отдельные элементы в списке и переводить в формат строк (str) то все получается читабельно. Если даже весь список перевести в строку, то получится. Но в том то и дело, что хочется оставить данные в формате списка, чтобы можно было этот список “скормить” модулю csv, а тут никак не получается.

В общем буду разбираться, может повезет, всем спасибо за помощь! Впрочем, если у кого будет совет, как это дело провернуть, счастью моему не будет пределов

Офлайн

#4 Окт. 17, 2013 10:39:11

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Проблема с кодировкой кириллицы - BeautifulSoup и csv

пройтись по списку и закодировать

lst = [s.encode('utf-8') for s in lst]

Отредактировано bismigalis (Окт. 17, 2013 11:37:08)

Офлайн

#5 Окт. 17, 2013 11:26:38

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Проблема с кодировкой кириллицы - BeautifulSoup и csv

еще у меня так нормально отрабатывает запись в файл
только если делаю один список то записывает после каждого символа запятую, если делаю список списков то записывает нормально

import csv
outfile = open('test_out.txt', 'w')
writer = csv.writer(outfile)
ls=[]
ts=[]
d=[[u'3424 \u0432\u0456\u0434 14.10.2013'], [u'3 \u0441\u0435\u0441\u0456\u044f VII \u0441\u043a\u043b\u0438\u043a\u0430\u043d\u043d\u044f']]
for i in d:
    [s.encode('utf-8') for s in i]
    print s
    ls.append(s.encode('cp1251'))
ts.append(ls)
writer.writerows(ts)

Отредактировано sanodin (Окт. 17, 2013 17:09:39)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version