Парсинг сайтов, но в результате появляется много отступов, исправимо?

Я попробовал парсинг, у меня по сути получилось, вот только, в результате у меня появились отступы. Бот должен был по команде скидывать погоду. Можно ли их убрать? Код ниже

url = 'https://pogoda.mail.ru/prognoz/bishkek/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
quote
 = soup.find_all('div', class_='day day_index')
for quote in quotes:
    print(quote.text)

В итоге у меня появляется это

Подскажите, как это убрать?


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

Автор решения: CrazyElf

Привожу весь код, поскольку ваш код просто не компилируется. Но основная суть в последней строке:

import requests
from bs4 import BeautifulSoup

url = 'https://pogoda.mail.ru/prognoz/bishkek/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
quotes = soup.find_all('div', class_='day day_index')
for quote in quotes:
    print(' '.join(q for q in quote.text.split()))

Вывод:

Завтра +32° +17° ясно 697 мм 17% 3 м/с 7 8%
Вс, 19/09 +33° +17° ясно 697 мм 20% 6 м/с 7 0%
Пн, 20/09 +25° +11° облачно 700 мм 19% 4 м/с 6 11%
Вт, 21/09 +25° +9° облачно 698 мм 16% 4 м/с 7 4%
Ср, 22/09 +23° +8° облачно 697 мм 18% 4 м/с 7 6%
Чт, 23/09 +24° +8° облачно 698 мм 16% 3 м/с 6 13%
Пт, 24/09 +22° +7° ясно 700 мм 18% 4 м/с 6 2%
Сб, 25/09 +20° +5° облачно 701 мм 22% 4 м/с 5 12%
Вс, 26/09 +24° +6° ясно 698 мм 15% 2 м/с 6 0%
Пн, 27/09 +29° +10° облачно 697 мм 10% 1 м/с 6 0%

Другой вариант - через регулярки:

import re

...

rx = re.compile('\s+')
for quote in quotes:
    print(rx.sub(' ', quote.text))

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

→ Ссылка