From 1d48a7fdb55c45bf3bc67cfefc9c4ef2cca42f74 Mon Sep 17 00:00:00 2001 From: Artem Lavrenov Date: Wed, 2 Aug 2023 00:01:02 +0300 Subject: [PATCH] fix beeline web, try 2 --- plugin/beeline.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugin/beeline.py b/plugin/beeline.py index 48b4b0a..7c3d60d 100644 --- a/plugin/beeline.py +++ b/plugin/beeline.py @@ -8,8 +8,8 @@ # если залогинены, то попадем сразу в ЛК, иначе попадем ХЗ куда direct_lk_url = 'https://beeline.ru/customers/products/elk/tab/mobile-connection' profile_url = 'https://beeline.ru/customers/products/mobile/profile/' -user_selectors = {'chk_lk_page_js': "document.querySelector('form input.TBWrdb')== null && document.querySelector('form input[type=password]')== null", - 'chk_login_page_js': "!(document.querySelector('form input.TBWrdb')== null && document.querySelector('form input[type=password]')== null)", +user_selectors = {'chk_lk_page_js': "document.querySelector('div.initial-form')==null && document.querySelector('form input[type=password]')== null", + 'chk_login_page_js': "!(document.querySelector('div.initial-form')==null && document.querySelector('form input[type=password]')== null)", 'login_clear_js': "document.querySelector('form input[type=text]').value=''", 'login_selector': 'form input[type=text]', 'password_clear_js': "document.querySelector('form input[type=password][role=textbox]').value=''", @@ -32,19 +32,19 @@ def data_collector(self): # Ждем пока появтся accumulators2_tag и services_tag if len([v for k, v in self.responses.items() if accumulators2_tag in k and 'accumulators' in v or services_tag in k]) >= 2: break - # Если не попали внутрь ЛК - тогда пытаемся логиниться - if self.page_evaluate("document.querySelector('form input.TBWrdb')== null && document.querySelector('form input[type=password]')== null"): + # Если не попали внутрь ЛК (попали на новую форму логина) - тогда пытаемся логиниться + if self.page_evaluate(user_selectors['chk_login_page_js']): self.do_logon(url=login_url, user_selectors=user_selectors) self.page_goto(direct_lk_url) self.sleep(10) logging.info(f'Before call self.page_goto({profile_url})') self.page_goto(profile_url) # TODO костыль - сайт очень медленно открывается тупо долго ждем - for _ in range(0, 180, 1): + for _ in range(0, 180, 5): logging.info(f'Wait page {profile_tag} {len(self.responses)}') if any([k for k, v in self.responses.items() if profile_tag in k and 'balance' in v]): break - self.sleep(1) + self.sleep(5) else: raise RuntimeError(f'Так и не получили страницу с балансом {profile_tag}') # Приходится сначала долго ждать страницу, а затем когда она пришла получить ее точный url чтобы отфильтроваться от остальных запросов с похожим url