Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
doudian-py
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
baiquan
doudian-py
Commits
5f045b83
Commit
5f045b83
authored
Jun 26, 2025
by
baiquan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化登录异常处理方式
parent
51e05f26
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
11 deletions
+23
-11
service/hub_.py
+1
-1
service/page_login.py
+17
-9
shop.py
+5
-1
No files found.
service/hub_.py
View file @
5f045b83
...
@@ -89,7 +89,7 @@ async def openBrowser(browser_id: str = "", timeout: int = 120):
...
@@ -89,7 +89,7 @@ async def openBrowser(browser_id: str = "", timeout: int = 120):
return
await
sendRequest
(
"POST"
,
url
=
url
,
json_data
=
data
,
**
{
'timeout'
:
timeout
})
return
await
sendRequest
(
"POST"
,
url
=
url
,
json_data
=
data
,
**
{
'timeout'
:
timeout
})
async
def
closeBrowser
(
browser_id
:
str
=
""
):
async
def
closeBrowser
(
browser_id
):
"""
"""
关闭浏览器
关闭浏览器
:param browser_id:
:param browser_id:
...
...
service/page_login.py
View file @
5f045b83
import
time
import
time
from
DrissionPage.errors
import
*
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
...
@@ -44,31 +44,33 @@ async def page_login(browser_id):
...
@@ -44,31 +44,33 @@ async def page_login(browser_id):
await
closeBrowser
(
browser_id
)
await
closeBrowser
(
browser_id
)
time
.
sleep
(
3
)
time
.
sleep
(
3
)
except
Exception
as
e
:
except
Exception
as
e
:
logger
.
error
(
f
"启动浏览器错误-->{e}"
)
logger
.
error
(
f
"
{browser_id}
启动浏览器错误-->{e}"
)
time
.
sleep
(
3
)
time
.
sleep
(
3
)
if
open_count
==
0
:
if
open_count
==
0
:
raise
AppError
(
"
启动浏览器失败"
)
raise
AppError
(
f
"{browser_id}-->
启动浏览器失败"
)
tab
.
get
(
'https://fxg.jinritemai.com/login/common'
)
tab
.
get
(
'https://fxg.jinritemai.com/login/common'
)
tab
.
listen
.
start
([
"account_login/v2/"
,
"captcha/verify"
,
"/aff/check_login"
])
tab
.
listen
.
start
([
"account_login/v2/"
,
"captcha/verify"
,
"/aff/check_login"
])
login_res
=
listen_check_login
(
tab
)
login_res
=
listen_check_login
(
tab
)
logger
.
info
(
f
"当前页面是否登录-->{login_res}"
)
logger
.
info
(
f
"
{browser_id}
当前页面是否登录-->{login_res}"
)
if
not
login_res
:
if
not
login_res
:
retry
=
0
retry
=
0
while
True
:
while
True
:
if
retry
>
3
:
if
retry
>=
3
:
raise
AppError
(
"重试多次,登录失败"
)
tab
.
close
()
raise
AppError
(
f
"重试多次,登录失败"
)
if
retry
==
4
:
if
retry
==
4
:
raise
AppError
(
f
"{browser_id}-->未找到账号信息"
)
tab
.
close
()
raise
AppError
(
f
"未找到账号信息"
)
retry
+=
1
retry
+=
1
try
:
try
:
em
=
"邮箱登录"
em
=
"邮箱登录"
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
:
continue
raise
AppError
(
f
"页面或元素未加载完成({retry})"
)
click_button
(
tab
,
em
)
# 点击邮箱登录按钮
click_button
(
tab
,
em
)
# 点击邮箱登录按钮
email_input
=
tab
.
ele
(
"@title=请输入邮箱"
)
email_input
=
tab
.
ele
(
"@title=请输入邮箱"
)
password_input
=
tab
.
ele
(
"@title=密码"
)
password_input
=
tab
.
ele
(
"@title=密码"
)
...
@@ -86,6 +88,12 @@ async def page_login(browser_id):
...
@@ -86,6 +88,12 @@ async def page_login(browser_id):
click_button
(
tab
,
".account-center-submit"
)
# 点击登录按钮
click_button
(
tab
,
".account-center-submit"
)
# 点击登录按钮
listen_login
(
tab
)
listen_login
(
tab
)
break
break
except
ElementNotFoundError
as
e
:
if
tab
.
title
==
"首页"
:
logger
.
info
(
f
"{browser_id}-->当前页面为首页,已登录"
)
break
else
:
logger
.
error
(
f
"{browser_id}-->{e}"
)
except
Exception
as
e
:
except
Exception
as
e
:
logger
.
error
(
f
"{browser_id}-->{e}"
)
logger
.
error
(
f
"{browser_id}-->{e}"
)
tab
.
close
()
tab
.
close
()
...
@@ -107,7 +115,7 @@ def listen_login(tab):
...
@@ -107,7 +115,7 @@ def listen_login(tab):
def
listen_check_login
(
tab
):
def
listen_check_login
(
tab
):
check_result
=
False
check_result
=
False
for
packet
in
tab
.
listen
.
steps
(
timeout
=
5
):
for
packet
in
tab
.
listen
.
steps
(
timeout
=
5
):
if
'/aff/check_login'
in
packet
.
url
:
if
'/aff/check_login'
in
packet
.
url
and
packet
.
response
.
body
:
login_res
=
packet
.
response
.
body
login_res
=
packet
.
response
.
body
logger
.
info
(
f
'获取确认登录数据:{login_res}'
)
logger
.
info
(
f
'获取确认登录数据:{login_res}'
)
if
login_res
[
'description'
]
==
''
and
login_res
[
'deputy_has_login'
]
==
True
and
login_res
[
'error_code'
]
==
0
:
if
login_res
[
'description'
]
==
''
and
login_res
[
'deputy_has_login'
]
==
True
and
login_res
[
'error_code'
]
==
0
:
...
...
shop.py
View file @
5f045b83
...
@@ -182,7 +182,11 @@ async def run():
...
@@ -182,7 +182,11 @@ async def run():
try
:
try
:
tasks
=
await
get_task
(
upload_data
)
tasks
=
await
get_task
(
upload_data
)
# tasks = {"data": [{"app_name": "admin", "type": 1, "browser_type": 1}]}
# tasks = {"data": [{"app_name": "admin", "type": 1, "browser_type": 1}]}
# tasks = {"data": [{"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1075653218"}]}
# tasks = {"data": [{"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1075653218"},
# {"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1075653218"},
# {"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1075653218"},
# {"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1075653218"},
# {"app_name": "admin", "type": 1, "browser_type": 1, "browser_id": "1075653218"},]}
except
:
except
:
logger
.
error
(
'获取任务失败'
)
logger
.
error
(
'获取任务失败'
)
return
return
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment