From 80d1041f5af4d80138a2ccd0188ec97d57d2f8e6 Mon Sep 17 00:00:00 2001 From: zk Date: Fri, 26 Jun 2020 14:37:33 +0800 Subject: [PATCH] atuo fetch cookie from chrome --- coursera/commandline.py | 9 ++++++++- coursera/coursera_dl.py | 10 ++++++++++ requirements.txt | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/coursera/commandline.py b/coursera/commandline.py index 2fd80d78..cc4979bb 100644 --- a/coursera/commandline.py +++ b/coursera/commandline.py @@ -357,6 +357,13 @@ def parse_args(args=None): default=None, help='full path to the cookies.txt file') + group_adv_auth.add_argument( + '-acc', + '--autocookie_chrome', + action='store_true', + default=False, + help='auto load chrome cookie') + group_adv_auth.add_argument( '-n', '--netrc', @@ -500,7 +507,7 @@ def parse_args(args=None): logging.error('Cookies file not found: %s', args.cookies_file) sys.exit(1) - if not args.cookies_file and not args.cookies_cauth: + if not args.cookies_file and not args.cookies_cauth and not args.autocookie_chrome: try: args.username, args.password = get_credentials( username=args.username, password=args.password, diff --git a/coursera/coursera_dl.py b/coursera/coursera_dl.py index 64a48dbe..c52ba582 100644 --- a/coursera/coursera_dl.py +++ b/coursera/coursera_dl.py @@ -235,6 +235,16 @@ def main(): session = get_session() if args.cookies_cauth: session.cookies.set('CAUTH', args.cookies_cauth) + elif args.autocookie_chrome: + def autocookie(): + import browser_cookie3 + cj = browser_cookie3.chrome(domain_name='coursera.org') + for cookie in cj: + if cookie.name =='CAUTH': + return cookie.value + else: + raise Exception("can not find CAUTH in Chrome.") + session.cookies.set('CAUTH', autocookie()) else: login(session, args.username, args.password) if args.specialization: diff --git a/requirements.txt b/requirements.txt index dc3ac2a5..661b7cf1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,3 +6,4 @@ pyasn1>=0.1.7 keyring>=4.0 configargparse>=0.12.0 attrs==18.1.0 +browser_cookie3==0.7.6