From ba0474902902a78bc853d2e4d61afc653984543b Mon Sep 17 00:00:00 2001 From: yzqzss Date: Tue, 11 Jul 2023 23:44:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E5=AF=B9=20BiliBili=20=E6=9C=80?= =?UTF-8?q?=E8=BF=91=E5=B0=86=20SESSDATA=20cookie=20=E8=AE=BE=E4=B8=BA=20H?= =?UTF-8?q?TTP-Only?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- biliarchiver/cli_tools/bili_archive_bvids.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/biliarchiver/cli_tools/bili_archive_bvids.py b/biliarchiver/cli_tools/bili_archive_bvids.py index dffd521..493e813 100644 --- a/biliarchiver/cli_tools/bili_archive_bvids.py +++ b/biliarchiver/cli_tools/bili_archive_bvids.py @@ -148,14 +148,21 @@ def update_cookies_from_file(client: AsyncClient, cookies_path: Union[str, Path] with HttpOnlyCookie_Handler(cookies_path): cj.load(f'{cookies_path}', ignore_discard=True, ignore_expires=True) loadded_cookies = 0 + loadded_keys = [] for cookie in cj: # only load bilibili cookies - if 'bilibili' in cookie.domain: - assert cookie.value is not None - client.cookies.set( - cookie.name, cookie.value, domain=cookie.domain, path=cookie.path - ) - loadded_cookies += 1 + if not 'bilibili.com' in cookie.domain: + continue + if cookie.name in loadded_keys: + print(f'跳过重复的 cookies: {cookie.name}') + # httpx 不能处理不同域名的同名 cookies,只好硬去重了 + continue + assert cookie.value is not None + client.cookies.set( + cookie.name, cookie.value, domain=cookie.domain, path=cookie.path + ) + loadded_keys.append(cookie.name) + loadded_cookies += 1 print(f'从 {cookies_path} 品尝了 {loadded_cookies} 块 cookies') if loadded_cookies > 100: print('吃了过多的 cookies,可能导致 httpx.Client 怠工,响应非常缓慢')