mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
完善_try_to_connect()逻辑
This commit is contained in:
parent
4d1b8e5109
commit
f4e80fdd92
@ -100,26 +100,31 @@ class DriverPage(object):
|
||||
:param show_errmsg: 是否抛出异常
|
||||
:return: 是否成功
|
||||
"""
|
||||
err = None
|
||||
|
||||
def goto() -> bool:
|
||||
def go() -> bool:
|
||||
nonlocal err
|
||||
try:
|
||||
self.driver.get(to_url)
|
||||
return True
|
||||
except:
|
||||
except Exception as e:
|
||||
err = e
|
||||
return False
|
||||
|
||||
is_ok = self.check_page() if goto() else False
|
||||
is_ok = False
|
||||
|
||||
for _ in range(times + 1):
|
||||
is_ok = self.check_page() if go() else False
|
||||
|
||||
for _ in range(times):
|
||||
if is_ok is not False:
|
||||
break
|
||||
|
||||
sleep(interval)
|
||||
print(f'重试 {to_url}')
|
||||
is_ok = self.check_page() if goto() else False
|
||||
if _ < times:
|
||||
sleep(interval)
|
||||
print(f'重试 {to_url}')
|
||||
|
||||
if is_ok is False and show_errmsg:
|
||||
raise ConnectionError('Connect error.')
|
||||
raise err if err is not None else ConnectionError('Connect error.')
|
||||
|
||||
return is_ok
|
||||
|
||||
|
@ -197,15 +197,28 @@ class SessionPage(object):
|
||||
:param kwargs: 连接参数
|
||||
:return: HTMLResponse对象
|
||||
"""
|
||||
r = self._make_response(to_url, mode=mode, show_errmsg=show_errmsg, **kwargs)[0]
|
||||
err = None
|
||||
r = None
|
||||
|
||||
for _ in range(times):
|
||||
if (r and r.content != b'') or (r is not None and r.status_code in (403, 404)):
|
||||
def go() -> Union[Response, None]:
|
||||
nonlocal err
|
||||
try:
|
||||
return self._make_response(to_url, mode=mode, show_errmsg=True, **kwargs)[0]
|
||||
except Exception as e:
|
||||
err = e
|
||||
return None
|
||||
|
||||
for _ in range(times + 1):
|
||||
r = go()
|
||||
if r and (r.content != b'' or r.status_code in (403, 404)):
|
||||
break
|
||||
|
||||
print(f'重试 {to_url}')
|
||||
sleep(interval)
|
||||
r = self._make_response(to_url, mode=mode, show_errmsg=show_errmsg, **kwargs)[0]
|
||||
if _ < times:
|
||||
sleep(interval)
|
||||
print(f'重试 {to_url}')
|
||||
|
||||
if not r and show_errmsg:
|
||||
raise err if err is not None else ConnectionError('Connect error.')
|
||||
|
||||
return r
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user