Форум сайта python.su
Скажем, в браузере: время 7:57 температура +5° ветер 7 м/с влажность 28%
При парсинге получаю: время 0:57 температура +11° ветер 0 м/с влажность 45%
Причем, иногда парсинг выдает правильный результат, т.е. такой же как в браузере
В чем причина, поясните плз.
Мой код:
url = 'https://www.meteoservice.ru/weather/now/vladivostok' response = requests.get(url) html_dock = BeautifulSoup(response.text, features='html.parser') list_of_values = html_dock.find_all('div', {'class': 'small-12 medium-6 large-5 columns current-weather'}) date_time = list_of_values[0].find_all('span', {'class': 'point-time'})[0] temperature = list_of_values[0].find_all('span', {'class': 'value'})[0] wind = list_of_values[0].find_all('span', {'class': 'value'})[2] air_humidity = list_of_values[0].find_all('div', {'class': 'h5 margin-bottom-0'})[1] precipitation = list_of_values[0].find_all('div', {'class': 'small-12 columns text-center padding-top-2'})[0] print(date_time.text, temperature.text, wind.text, air_humidity.text, precipitation.text)
Офлайн
Всё работает нормально.
vladimir_vl_vladЗапускаешь не этот код.
В чем причина, поясните плз.
Отредактировано py.user.next (Апрель 23, 2023 04:44:19)
Офлайн
py.user.nextЕсли через консоль - тоже самое: иногда правильно, иногда вообще непонятно откуда цифры берутся.
Всё работает нормально.
Офлайн
vladimir_vl_vladСделай скриншот консоли, в которой запускаешь, и выложи сюда.
Если через консоль - тоже самое
>>> import requests >>> from bs4 import BeautifulSoup >>> >>> def f(): ... url = 'https://www.meteoservice.ru/weather/now/vladivostok' ... response = requests.get(url) ... html_dock = BeautifulSoup(response.text, features='html.parser') ... list_of_values = html_dock.find_all('div', {'class': 'small-12 medium-6 large-5 columns current-weather'}) ... date_time = list_of_values[0].find_all('span', {'class': 'point-time'})[0] ... temperature = list_of_values[0].find_all('span', {'class': 'value'})[0] ... wind = list_of_values[0].find_all('span', {'class': 'value'})[2] ... air_humidity = list_of_values[0].find_all('div', {'class': 'h5 margin-bottom-0'})[1] ... precipitation = list_of_values[0].find_all('div', {'class': 'small-12 columns text-center padding-top-2'})[0] ... print(date_time.text, temperature.text, wind.text, air_humidity.text, precipitation.text) ... >>> for i in range(5): ... f() ... 23 апреля, 13:47 +17° 1 м/с 28% Малооблачно 23 апреля, 13:47 +17° 1 м/с 28% Малооблачно 23 апреля, 13:47 +17° 1 м/с 28% Малооблачно 23 апреля, 13:47 +17° 1 м/с 28% Малооблачно 23 апреля, 13:47 +17° 1 м/с 28% Малооблачно >>>
vladimir_vl_vladПочисти кэш браузера ещё.
Скажем, в браузере: время 7:57 температура +5° ветер 7 м/с влажность 28%
При парсинге получаю: время 0:57 температура +11° ветер 0 м/с влажность 45%
Отредактировано py.user.next (Апрель 23, 2023 13:53:37)
Офлайн
Вот скриншот: видно, что, начиная с 8-го вызова функции, данные изменяются и начинают совпадать с теми, что отображаются в браузере
Ссылка на скриншот
Офлайн
У меня вот оно показывает время неправильно (часы неправильные, а потом и минуты неправильными становятся)
>>> import requests >>> from bs4 import BeautifulSoup >>> import time >>> >>> def f(): ... url = 'https://www.meteoservice.ru/weather/now/vladivostok' ... response = requests.get(url) ... html_dock = BeautifulSoup(response.text, features='html.parser') ... list_of_values = html_dock.find_all('div', {'class': 'small-12 medium-6 large-5 columns current-weather'}) ... date_time = list_of_values[0].find_all('span', {'class': 'point-time'})[0] ... temperature = list_of_values[0].find_all('span', {'class': 'value'})[0] ... wind = list_of_values[0].find_all('span', {'class': 'value'})[2] ... air_humidity = list_of_values[0].find_all('div', {'class': 'h5 margin-bottom-0'})[1] ... precipitation = list_of_values[0].find_all('div', {'class': 'small-12 columns text-center padding-top-2'})[0] ... print(date_time.text, temperature.text, wind.text, air_humidity.text, precipitation.text) ... >>> for i in range(20): ... f() ... time.sleep(10) ... 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:48 +11° 1 м/с 51% Ясно 24 апреля, 8:53 +11° 1 м/с 51% Ясно 24 апреля, 8:53 +11° 1 м/с 51% Ясно >>>
Отредактировано py.user.next (Апрель 24, 2023 09:02:28)
Офлайн