Как заменить четыре перевода строки на один?

Мне нужно получить текст с одним переводом строки, получаю его я с четырьмя или пятью. Я сделал код, который удаляет все \n, но надо оставить один.

payload = {'id': '63', 'date': '2022-03-05', 'modal2': 'true'}
raw_html = requests.post('https://guspoliteh.ru/studentu/raspisanie-zanyatiy/', data=payload)
cleantext = re.sub(r'<.*?>', '', raw_html.text)
cleantext = cleantext.replace ("\n", "")

Вот, что получаю на выходе:

05 марта 2022
            
              
                    
              
                  
               ТМ-3/19 (Вход 1)
            
              
                    
           
            
             Первая 09.00-10.30
             Информационные технологии (М №1)
             Производственная практика . .
            
           
           
            
             Вторая 10.40-12.10
             Информационные технологии (М №1)
             Производственная практика . .

А надо, что бы было вот так:

05 марта 2022

ТМ-3/19 (Вход 1)
            
Первая 09.00-10.30
Информационные технологии (М №1)
Производственная практика . .
            
Вторая 10.40-12.10
Информационные технологии (М №1)
Производственная практика . .

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

Автор решения: D.Vinogradov

"костылёво", но работает

from bs4 import BeautifulSoup

payload = {'id': '63', 'date': '2022-03-05', 'modal2': 'true'}
raw_html = requests.post('https://guspoliteh.ru/studentu/raspisanie-zanyatiy/', data=payload)
raw = BeautifulSoup(raw_html.text, 'html.parser')
print(raw.get_text().replace('\n\n\n\n', '\n').strip('\n').replace('\n\n\n', '\n'))

>>> 
05 марта 2022

ТМ-3/19 (Вход 1)

Первая 09.00-10.30
Информационные технологии (М №1)
Производственная практика . .

Вторая 10.40-12.10
Информационные технологии (М №1)
Производственная практика . .

Третья 12.30-14.00
МДК 02.01 (309)
Производственная практика . .

Четвертая 14.10-15.40
МДК 02.01 (309)
Производственная практика . .

хотя в самом get_text() есть интересные встроенные методы, допустим

get_text(strip=True, separator='\n')

выдал бы нам

05 марта 2022
ТМ-3/19 (Вход 1)
Первая 09.00-10.30
Информационные технологии (М №1)
Производственная практика . .
Вторая 10.40-12.10
Информационные технологии (М №1)
Производственная практика . .
Третья 12.30-14.00
МДК 02.01 (309)
Производственная практика . .
Четвертая 14.10-15.40
МДК 02.01 (309)
Производственная практика . .

что без костылей, но вывод не совсем такой, какой требуется именно Вам.

→ Ссылка