Как преобразовать список UTF-8 в строку в Python - PullRequest
0 голосов
/ 07 мая 2019

Мне нужно сохранить результаты BeautifulSoup в файл .txt. и мне нужно преобразовать результаты в строку с str() и не работает, потому что список UTF-8:

# -*- coding: utf-8 -*-

page_content = soup(page.content, "lxml")

links = page_content.select('h3', class_="LC20lb")

for link in links:
    with open("results.txt", 'a') as file:
        file.write(str(link) + "\n")

и получите эту ошибку:

  File "C:\Users\omido\AppData\Local\Programs\Python\Python37-32\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 183-186: character maps to <undefined>

1 Ответ

1 голос
/ 07 мая 2019

Если вы хотите записать в файл также в формате UTF-8, вам необходимо указать следующее:

with open("results.txt", 'a', encoding='utf-8') as file:
    file.write(str(link) + "\n")

, и будет хорошей идеей открыть файл только один раз:

with open("results.txt", 'a', encoding='utf-8') as file:
    for link in links:
        file.write(str(link) + "\n")

(Вы также можете print(link, file=file).)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...