Commit 51e05f26 by baiquan

优化确认是否登录方式

parent 682e20a2
import re
import time import time
from datetime import datetime, timedelta
from DrissionPage import Chromium from DrissionPage import Chromium
from DrissionPage._functions.by import By from DrissionPage._functions.by import By
from loguru import logger from loguru import logger
from dao.db import find_account_by_environment_id
from service.hub_ import openBrowser, closeBrowser
from utils.dy_verify import get_distance_by_ddddocr from utils.dy_verify import get_distance_by_ddddocr
from utils.errors import AppError from utils.errors import AppError
from service.hub_ import openBrowser, closeBrowser
from dao.db import find_account_by_environment_id
def click_button(tab, loc): def click_button(tab, loc):
...@@ -51,19 +49,13 @@ async def page_login(browser_id): ...@@ -51,19 +49,13 @@ async def page_login(browser_id):
if open_count == 0: if open_count == 0:
raise AppError("启动浏览器失败") raise AppError("启动浏览器失败")
doc_loaded = None tab.get('https://fxg.jinritemai.com/login/common')
tab.get('https://fxg.jinritemai.com/ffa/mshop/homepage/index')
tab.listen.start(["account_login/v2/", "captcha/verify"])
for _ in range(3): tab.listen.start(["account_login/v2/", "captcha/verify", "/aff/check_login"])
doc_loaded = tab.wait.doc_loaded(timeout=10)
if doc_loaded: login_res = listen_check_login(tab)
break logger.info(f"当前页面是否登录-->{login_res}")
if not doc_loaded: if not login_res:
raise AppError("打开浏览器失败")
tab.wait(3)
title = tab.title
if '登录' in title:
retry = 0 retry = 0
while True: while True:
if retry > 3: if retry > 3:
...@@ -73,7 +65,6 @@ async def page_login(browser_id): ...@@ -73,7 +65,6 @@ async def page_login(browser_id):
retry += 1 retry += 1
try: try:
em = "邮箱登录" em = "邮箱登录"
tab.get('https://fxg.jinritemai.com/login/common')
doc_loaded = tab.wait.doc_loaded(timeout=10) doc_loaded = tab.wait.doc_loaded(timeout=10)
eles_loaded = tab.wait.eles_loaded(em) eles_loaded = tab.wait.eles_loaded(em)
if not doc_loaded or not eles_loaded: if not doc_loaded or not eles_loaded:
...@@ -113,6 +104,16 @@ def listen_login(tab): ...@@ -113,6 +104,16 @@ def listen_login(tab):
else: else:
raise AppError(f"登录失败 {login_res['description']}") raise AppError(f"登录失败 {login_res['description']}")
def listen_check_login(tab):
check_result = False
for packet in tab.listen.steps(timeout=5):
if '/aff/check_login' in packet.url:
login_res = packet.response.body
logger.info(f'获取确认登录数据:{login_res}')
if login_res['description'] == '' and login_res['deputy_has_login'] == True and login_res['error_code'] == 0 :
check_result = True
return check_result
def verify_captcha(tab): def verify_captcha(tab):
captcha_verify_image = (By.XPATH, '//*[@id="captcha_verify_image"]') captcha_verify_image = (By.XPATH, '//*[@id="captcha_verify_image"]')
verify_img_slide = (By.XPATH, '//*[@id="captcha-verify_img_slide"]') verify_img_slide = (By.XPATH, '//*[@id="captcha-verify_img_slide"]')
...@@ -150,9 +151,9 @@ def verify_captcha(tab): ...@@ -150,9 +151,9 @@ def verify_captcha(tab):
iframe.actions.right(x) iframe.actions.right(x)
iframe.actions.release() iframe.actions.release()
for verify_packet in tab.listen.steps(timeout=30): for verify_packet in tab.listen.steps(timeout=30):
if "https://verify.zijieapi.com/captcha/verify" in verify_packet.url: if "captcha/verify" in verify_packet.url:
verify_res = verify_packet.response.body verify_res = verify_packet.response.body
if verify_res['code'] == 200 or verify_res['code'] == 0: if verify_res['code'] != 500:
logger.info(f"-------- login_verify: 滑块处理成功!--------") logger.info(f"-------- login_verify: 滑块处理成功!--------")
return return
else: else:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment