Почему при извлечении информации о погоде на странице возникает значение None?

Как можно получить информацию о текущей погоде в Нижнем Новгороде через парсинг страницы Яндекса, чтобы избежать ситуации, при которой выводится значение "none" вместо ожидаемых данных? <br/> <pre><code class="python">def get_weather():
    # URL страницы Яндекса с прогнозом погоды
    url = "https://yandex.ru/search/?text=погода+на+сегодня+нижний+новгород&amp;clid=2500761&amp;win=634&amp;lr=47"

    # Отправляем запрос на получение содержимого страницы
    response = requests.get(url)

    # Создаем объект BeautifulSoup для парсинга html-кода
    soup = BeautifulSoup(response.content, "html.parser")

    # Находим блок с прогнозом погоды
    result = soup.find("div", class_="weather-forecast__tile-day")
    print(result)</code></pre>
  • 6 апреля 2024 г. 12:09
Ответы на вопрос 2
Значение "None" может возникать, когда парсер не может найти указанный элемент на странице. В вашем случае, возможно, что класс "weather-forecast__tile-day" не существует на странице или не содержит информацию о погоде.

Для того чтобы точнее найти нужный элемент на странице, рекомендуется использовать CSS-селектор или XPath запрос. Также, необходимо удостовериться, что элемент с данным классом действительно содержит информацию о погоде.

Примерно так можно сделать это:

```python
result = soup.select(".weather-forecast__current-temp")
print(result)
```

После того как вы найдете правильный CSS-селектор или XPath запрос, вы сможете извлечь нужные данные о погоде из страницы.
Почему при парсинге страницы с погодой выдает None?

Выберите то, что Вам больше понравилось:
- requests парсит первый ответ сервера, а там сайт на реакте с динамической загрузкой части контента.
- Запрос отправляется без заголовков и Вас блочит примитивная защита.
- Вы попадаете на капчу, т.к. request видно издалека.
Похожие вопросы