Ошибка кодировки при попытке записать файл с python - PullRequest
0 голосов
/ 09 мая 2018

Вот полный скрипт:

import requests
import bs4


res = requests.get('https://example.com')
soup = bs4.BeautifulSoup(res.text, 'lxml')
page_HTML_code = soup.prettify()

multiline_code = """{}""".format(page_HTML_code)

f = open("testfile.txt","w+")
f.write(multiline_code)
f.close()

Поэтому я пытаюсь записать весь загруженный HTML-файл как файл, сохраняя его аккуратным и чистым.

Я понимаю, что он имеет проблемы с текстом и не может сохранить определенные символы, но я не уверен, как правильно кодировать текст.

Кто-нибудь может помочь?

Это сообщение об ошибке, которое я получу

"C:\Location", line 16, in <module>
    f.write(multiline_code)
  File "C:\\Anaconda3\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u0421' in position 209: character maps to <undefined>

1 Ответ

0 голосов
/ 09 мая 2018

Я немного покопался, и это сработало:

import requests
import bs4


res = requests.get('https://example.com')

soup = bs4.BeautifulSoup(res.text, 'lxml')

page_HTML_code = soup.prettify()



multiline_code = """{}""".format(page_HTML_code)

#add the Encoding part when opening file and this did the trick
with open('testfile.html', 'w+', encoding='utf-8') as fb:
    fb.write(multiline_code)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...