@RockyMotion

При сохранении в csv python выдает ошибку кодирования?

Пытаюсь распарсить html страничку, потом все данные переложить в Dataframe и его уже сохранить в CSV, все операции отрабатывали нормально, но как только начинаю сохранять в csv, то система выдает ошибку:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 49: character maps to

Не так давно сталкивался, что такая ошибка может возникать не напрямую от кодека, например у меня она выскакивала, когда попадал сторонний файл в папку с html файлами.
Уже перепробовал все варианты, не могу найти в чем ошибка.

Код программы:
# -*- coding: utf8 -*-
from bs4 import BeautifulSoup
import os
import pandas as pd

df = pd.DataFrame({
    'Column':['test']
})

path = 'C:\\Users\\Desktop\\folder'
os.chdir(path)

def main(x):
    html = open(x)
    soup = BeautifulSoup(html, 'html.parser')
    div = soup.find_all('a', class_='title-link')
    for i in div:
        b = i.get_text()
        df.loc[len(df)]=[b]
        print(df)
    return df

for filename in os.listdir(path):
    main(filename)

df.to_csv('C:\\Users\\Desktop\\out.csv', sep='\t', encoding='utf-8')


Полная ошибка:
Traceback (most recent call last):
File "C:/Users/PycharmProjects/dataset/parser.py", line 23, in
main(filename)
File "C:/Users/PycharmProjects/dataset/parser.py", line 14, in main
soup = BeautifulSoup(html, 'html.parser')
File "C:\Users\PycharmProjects\dataset\venv\lib\site-packages\bs4\__init__.py", line 244, in __init__
markup = markup.read()
File "C:\Users\AppData\Local\Programs\Python\Python37-32\lib\encodings\cp1251.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 49: character maps to
  • Вопрос задан
  • 613 просмотров
Решения вопроса 1
@RockyMotion Автор вопроса
Помогло поменять:
html = open(x)
на:
with open(x, 'rb') as f:
    html = f.read()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы