BeautifulSoup как спарсить элементы внутри блока?

Ситуация следующая. Есть повторяющие span с класами unit unit_temperature_c и unit unit_temperature_f в которых находяться температуры на разные дни. И есть один блок в котором находяться те же спаны которые отвечают за температуру на даный момент что мне и нужно спарсить. Но... как заставить спарсить отдельно температуру по цельсию и отдельно по фаренгейту?

temperatura = soup.find('div', class_='now-weather').text

<div class="now-weather">
<span class="unit unit_temperature_c">
<span class="sign">+</span>19
<span class="lower">,4</span>
 </span>
<span class="unit unit_temperature_f">
<span class="sign"></span>
67</span>
</div>

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

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

Если я верно понял задачу, то нужно использовать метод find_all в нужном блоке и дальше искать нужные теги.

temperature_all = soup.find_all('div', class_='now-weather')

for temperature in temperature_all:
    temp_c = soup.find('span', class_='unit unit_temperature_c')
    temp_f = soup.find('span', class_='unit unit_temperature_f')

    print(f'Температура в цельсиях: {temp_c.text}')
    print(f'Температура по фаренгейту: {temp_f.text}')
→ Ссылка