Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 24, 2017 18:10:02

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

CSV запятые. Кодировка

При записи в csv после каждого символа появляется запятая, записываю с помощью списка.


Где то читал про csv, но нормально ничего не понял так как на английском, а в русских документациях не полностью описывают csv модуль.
Код:

 from urllib.request import urlopen
from bs4 import BeautifulSoup
import csv
list_of_films = []
def start(page_number):
    url = urlopen('https://www.kinopoisk.ru/popular/day/2017-08-22/page/'+str(page_number)+'/')
    html = BeautifulSoup(url, 'lxml')
    parse(html)
def parse(ht):
    target = ht.find('div', class_='stat')
    for diver in target.findAll('div'):
        for b in diver.findAll('a', style='font:100 12px arial,sans-serif'):
            text = b.text.strip()
            list_of_films.append(text)
            print(text)
def main():
    print()
    for i in range(1, 51):
        start(i)
main()
def cesv():
    csvfile = open('D:\ds.csv', 'w')
    csc = csv.writer(csvfile)
    for row in list_of_films:
        csc.writerow(row)
cesv()

Ошибка:

Traceback (most recent call last):
File “DPython_files/Projects_Python_for_ Tutorial/Learning of Python/forever.py”, line 41, in <module>
cesv()
File “DPython_files/Projects_Python_for_ Tutorial/Learning of Python/forever.py”, line 39, in cesv
csc.writerow(row)
File “C:\Program Files\Python35\lib\encodings\cp1251.py”, line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)
UnicodeEncodeError: ‘charmap’ codec can't encode character ‘\xba’ in position 6: character maps to <undefined>


Понимаю, ошибка в кодировке и надо устранять как-то с помощью encode(), decode(), но не знаю как из-за проблемы с английским.

P.S Код не универсальный, так как пытался на основе его понять как решать и исправить вышеперечисленные проблемы, как видите не получилось.

P.P.S Буду рад примеру вашего кода со структурированной таблицей csv (Name, Price и т.д)



Лучший учитель - это ты сам.

Офлайн

#2 Авг. 24, 2017 18:46:46

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

CSV запятые. Кодировка

попробуй

 list_of_films.append(text.split(' '))

Офлайн

#3 Авг. 24, 2017 18:49:50

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

CSV запятые. Кодировка

vic57
Получилось, правда теперь вместо пробелов он начал ставить запятые, но между символами их нету



Лучший учитель - это ты сам.

Офлайн

#4 Авг. 24, 2017 19:41:14

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

CSV запятые. Кодировка

Djo0513
list_of_films.append(text)
print(text)
покажи выхлоп

Офлайн

#5 Авг. 24, 2017 20:24:59

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

CSV запятые. Кодировка

vic57

Остановись и гори (сериал, 2014 – 2017)
Молодежка (сериал, 2013 – 2017)
Дальняя дорога (2015)
Гость (2013)
Последнее королевство (сериал, 2015 – …)
Королевы крика (сериал, 2015 – …)
Дом (2017)
Последний магнат (сериал, 2016 – …)
Китайский квартал (1974)
Пункт назначения (2000)
Скала (1996)
Назад в будущее 3 (1990)
Сердце Ангела (1987)
Куда приводят мечты (1998)
Сталкер (1979)
Живая сталь (2011)
Пираты Карибского моря: На краю Света (2007)
Грозовые ворота (мини-сериал, 2006)
Да, возможно… (2008)
Дракула (2014)
Папе снова 17 (2009)
Олдбой (2013)
Хранитель времени (2011)
Воды слонам! (2011)
Мартовские иды (2011)
План побега (2013)
Однокурсники (сериал, 2009 – 2015)
Общак (2014)
Девочки (сериал, 2012 – 2017)
Застрял в любви (2012)
Номер 44 (2014)
Тайная жизнь домашних животных (2016)
Отцы и дочери (2014)
Человек (2015)
Всё ещё Элис (2014)
Вечность (сериал, 2014 – 2015)
Помнить (2015)
Все по новой (2016)
Солярис (2002)
Меня там нет (2007)
Здесь курят (2005)
Мертвая тишина (2006)
Жизнь Пи (2012)
Тетрадь смерти 2 (2006)
Ип Ман (2008)
Железный человек 2 (2010)
Стартрек: Возмездие (2013)
Очень плохая училка (2011)
О чём говорят мужчины (2010)
Американская семейка (сериал, 2009 – …)
Каникулы (2015)
«Старый» Новый год (2011)
Фрэнк (2013)
Несломленный (2014)
Голодные игры: И вспыхнет пламя (2013)
Голодные игры: Сойка-пересмешница. Часть I (2014)
Крах (сериал, 2013 – 2016)
Шпионы по соседству (2016)
Игра престолов: Сезон 2 – Приглашение на съемочную площадку (видео, 2012)
Любовь (2015)
Пятница (2016)
Дэйв сделал лабиринт (2017)
Мажор 2 (сериал, 2016)
Головокружение (1958)
Сука-любовь (2000)
Люди в черном (1997)
Коматозники (1990)
Власть страха (1999)
Лемони Сникет: 33 несчастья (2004)
Ребенок Розмари (1968)
За бортом (1987)
Каратель (2004)
Любовь и голуби (1984)
Зеркало (1974)
Мемуары гейши (2005)
Джон Картер (2012)
Клик: С пультом по жизни (2006)
Предчувствие (2007)
Кит (2008)
99 франков (2007)
Поезд на Дарджилинг. Отчаянные путешественники (2007)
Дневник убийцы (сериал, 2002)
Книга Илая (2009)
Короткое замыкание (2009)
Красные огни (2011)
Рейд (2011)
Судная ночь (2013)
Голодные игры: Сойка-пересмешница. Часть II (2015)
Другая женщина (2014)
Окулус (2013)
Франкенштейн (2011)
Костяной томагавк (2015)
Пока мы не встретимся снова (2016)
Трамбо (2015)
Второй шанс (2014)
Измены (сериал, 2015)
Фортитьюд (сериал, 2015 – …)



Лучший учитель - это ты сам.

Офлайн

#6 Авг. 24, 2017 20:34:27

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

CSV запятые. Кодировка

ну так у тебя строка, csv и не знает как ее парсить - нет разделителя
в твоем случае можно скостылить

            
text = b.text.strip()
l = text.split('(')
y = l[-1]
l[-1] = '(' +y
list_of_films.append(l)
print(l)
https://metanit.com/python/tutorial/4.3.php

Отредактировано vic57 (Авг. 24, 2017 20:37:46)

Офлайн

#7 Авг. 24, 2017 20:40:28

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

CSV запятые. Кодировка

vic57

Traceback (most recent call last):
File “DPython_files/Projects_Python_for_ Tutorial/Learning of Python/forever.py”, line 33, in <module>
main()
File “DPython_files/Projects_Python_for_ Tutorial/Learning of Python/forever.py”, line 30, in main
start(i)
File “DPython_files/Projects_Python_for_ Tutorial/Learning of Python/forever.py”, line 11, in start
parse(html)
File “DPython_files/Projects_Python_for_ Tutorial/Learning of Python/forever.py”, line 21, in parse
i = ‘(’ + y
TypeError: Can't convert ‘list’ object to str implicitly



Лучший учитель - это ты сам.

Офлайн

#8 Авг. 24, 2017 20:43:29

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

CSV запятые. Кодировка

Djo0513
исправил очепятку

Офлайн

#9 Авг. 24, 2017 20:43:41

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

CSV запятые. Кодировка

vic57
Нет, нет у меня не строка я парсю именно список, я же написал на самом вверху и в коде csv берёт список



Лучший учитель - это ты сам.

Офлайн

#10 Авг. 24, 2017 20:46:19

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

CSV запятые. Кодировка

vic57

с исправленной опечаткой



Лучший учитель - это ты сам.

Отредактировано Djo0513 (Авг. 24, 2017 20:46:41)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version