From 5f83e93a5298a793ac716e3978e93448dd01db26 Mon Sep 17 00:00:00 2001 From: g1879 Date: Tue, 18 Aug 2020 14:18:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96show=5Ferrmsg=E7=9A=84?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/session_page.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/DrissionPage/session_page.py b/DrissionPage/session_page.py index e566b1a..67eadb2 100644 --- a/DrissionPage/session_page.py +++ b/DrissionPage/session_page.py @@ -155,7 +155,7 @@ class SessionPage(object): return self._url = to_url self._response = self._make_response(to_url, show_errmsg=show_errmsg, **kwargs)[0] - if not self._response: + if self._response is None: self._url_available = False else: try: @@ -190,7 +190,7 @@ class SessionPage(object): return self._url = to_url self._response = self._make_response(to_url, mode='post', data=data, show_errmsg=show_errmsg, **kwargs)[0] - if not self._response: + if self._response is None: self._url_available = False else: try: @@ -234,10 +234,14 @@ class SessionPage(object): kwargs['timeout'] = 20 r, info = self._make_response(file_url, mode='get', show_errmsg=show_errmsg, **kwargs) - if not r: + if r is None: if show_msg: print(info) return False, info + if not r.ok: + if show_errmsg: + raise ConnectionError(f'Status code: {r.status_code}.') + return False, f'Status code: {r.status_code}.' # -------------------获取文件名------------------- # header里有文件名,则使用它,否则在url里截取,但不能保证url包含文件名 if 'Content-disposition' in r.headers: @@ -298,9 +302,16 @@ class SessionPage(object): rate = downloaded_size / file_size if downloaded_size < file_size else 1 print('\r {:.0%} '.format(rate), end="") except Exception as e: + if show_errmsg: + raise ConnectionError(e) download_status, info = False, f'Download failed.\n{e}' else: - download_status, info = (False, 'File size is 0.') if full_path.stat().st_size == 0 else (True, 'Success.') + if full_path.stat().st_size == 0: + if show_errmsg: + raise ValueError('File size is 0.') + download_status, info = False, 'File size is 0.' + else: + download_status, info = True, 'Success.' finally: # 删除下载出错文件 if not download_status and full_path.exists():