@tabbols95
Недопрограммист

Как при парсинге записать большой текст в строку?

Доброго времени суток, тостерцы)
А меня интересует такой вопрос, с которым борюсь 3 дня и не могу побороть.
Имеется следующий код:
def get_html(url):
	html = requests.get(url)
	return html.text
def get_descriptions(html):
	description = ''
	soup = bs(html, 'lxml')
	description = soup.find('div', class_='item-description').text
	return description
file_desc = open('file.txt', 'a')
url = 'Какой-то сайт'
html = get_html(url)
result_descriptions = str(get_descriptions(html)).replace('\n', ' ').replace('@', '')
file_desc.writelines('{}\n'.format(result_descriptions))
file_desc.close()

Все дело в том, что с некоторых страниц он берет описание и записывает, а с некоторых страниц выдает следующую ошибку.
Картинка с ошибкой
5bf3a400ba1be716426007.png

Пробовал так:
file_desc.writelines('{}\n'.format(result_descriptions[0:450]))

Но помогает в редких случаях. Хочется, чтобы все исправно всегда работало.
Помогите, пожалуйста, кто чем может.
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
JRazor
@JRazor
Senior StarkOverFlow Programmer
На хабре есть статья Юникод для чайников

Must read для всех питонистов и не только
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
alternativshik
@alternativshik
description .encode('utf-8')
Ответ написан
Комментировать
@EarlAthos
file_desc = open('file.txt', 'a', encoding='utf-8')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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