Проблема с чтением html файла. UnicodeEncodeError: 'charmap' codec can't encode character

Тренируюсь писать парсеры.

Получив данные по ссылке сохраняю в файл html. Далее открываю файл, и ищу в нем по тегу необходимое.

При промежуточной попытке проверить через print, что нашлось, выдает ошибку:

File "D:\pythonProject\parsing1\dynamic_parsing\main.py", line 26, in <module>
    scrap_master

File "D:\pythonProject\parsing1\dynamic_parsing\main.py", line 14, in scrap_master
    file.write(req.text)

  File "D:\python\lib\encodings\cp1251.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u20bd' in position 16449: character maps to <undefined>

Код такой:

req = requests.get(url, headers=header)

with open('temp_index.html', 'w', encoding='utf-8') as file:
    file.write(req.text)

with open('temp_index.html', encoding='utf-8') as file:
    source = file.read()

soup = BeautifulSoup(source, 'lxml')

all_product = soup.find_all('div', class_='x-product-card-description')
print(all_product)

Encoding при открытии файла пробовал убирать, как в примере по которому я иду, но не помогает. В Pycharm стоит utf-8. Прочел все ответы по данной теме. Во всех релевантных случаях не указывают кодировку или указывают неверно. Что я упускаю?

UPD: При попытке спарсить другой сайт, все работает при убранном encoding при открытии файла для чтения. Тем не менее интересно, что не так при первой попытке?


Ответы (0 шт):