From 064e7afc9af191cce749c606e29f1c93957f0377 Mon Sep 17 00:00:00 2001 From: Dmitry Afanasyev Date: Sat, 27 Aug 2022 19:31:25 +0300 Subject: [PATCH] yandex change elements --- app/core/parse_web.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/app/core/parse_web.py b/app/core/parse_web.py index ab8f6d1..b07c516 100644 --- a/app/core/parse_web.py +++ b/app/core/parse_web.py @@ -61,11 +61,12 @@ def parse_site(url: str, message: str, driver: RemoteWebDriver | None = None) -> bus_300, bus_t19 = None, None bus_300_arrival, bus_t19_arrival = None, None - try: - elements = driver.find_elements( - by='class name', value='masstransit-vehicle-snippet-view' - ) - for element in elements: + elements = driver.find_elements( + by='class name', value='masstransit-brief-schedule-view' + ) + + for element in elements: + try: bus_300 = element.find_element( by='css selector', value='[aria-label="300"]' ) @@ -78,18 +79,22 @@ def parse_site(url: str, message: str, driver: RemoteWebDriver | None = None) -> bus_t19_arrival = element.find_element( by='class name', value='masstransit-prognoses-view__title-text' ) - except NoSuchElementException: - pass - except StaleElementReferenceException: - pass + except NoSuchElementException: + pass + except StaleElementReferenceException: + pass + no_bus_at_all = True answer = f'{message}\n\n' - if not all([bus_300, bus_t19]) or not all([bus_300_arrival, bus_t19_arrival]): - return 'Автобусов 300 или Т19 не найдено. \n\nСмотри на карте :)' if bus_300 and bus_300_arrival: answer += f'Автобус {bus_300.text} - {bus_300_arrival.text}\n' + no_bus_at_all = False if bus_t19 and bus_t19_arrival: answer += f'Автобус {bus_t19.text} - {bus_t19_arrival.text}' - return answer + no_bus_at_all = False + if not no_bus_at_all: + return answer + if no_bus_at_all: + return 'Автобусов 300 или Т19 не найдено. \n\nСмотри на карте :)' @timed_cache(seconds=DRIVER_SESSION_TTL)