PYTHON Базовый текстовый браузер / скребок. Как удалить пустые строки, но сохранить хотя бы одну между абзацами

#python

#python

Вопрос:

Я создал базовый текстовый браузер / скребок, который работает для того, что я хочу, чтобы он делал. Однако, когда принимается текст с сайта, появляется чертовски много дополнительных пустых строк. Есть ли способ удалить лишние пустые строки, но сохранить хотя бы одну пустую строку между абзацами?

Вот мой код….

 import urllib.request
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = input('Enter a URL starting with https or http: ')
host = url
webUrl = urllib.request.urlopen(host)
print('result code: '   str(webUrl.getcode()))
data = webUrl.read()
soup = BeautifulSoup(data, features="html.parser")
for script in soup(["script", "style"]):
    script.extract()
text = soup.get_text()
print (text)
input('Scroll Up or Press ENTER to Exit')
  

Комментарии:

1. Что вы подразумеваете под «между абзацами»? Между <p> тегами или вообще сократить последовательные пустые строки до одной пустой строки везде?

2. Да, обычно везде сокращайте последовательные пустые строки до одной пустой строки. Я думаю, это сделает вывод более удобным для пользователя.

Ответ №1:

Используется re.sub для замены нескольких новых строк необязательными пробелами между ними и перед ними на одну новую строку:

 import re
text = re.sub(r"s*n", "n", text)
  

Комментарии:

1. Спасибо, очень признателен!