Пытаюсь распарсить 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