通过js获取cookie,避免反复登录操作。
经验证在JD上没有用,cookie应该无痕或者加密了,只能用单浏览器不关的模式来实现,但是代码留着,其他网站可能有用。
def cookie_set():driver = webdriver.Chrome(options=chrome_options)driver.get("https://passport.jd.com/new/login.aspx?/")cookie_file = 'cookie.txt'# 判断是否有 cookie.txt 文件if os.path.exists(cookie_file):# 读取cookie文件中的内容driver.get(f"https://www.jd.com/")time.sleep(2)with open(cookie_file, 'r') as file:# 读取文件中的 cookiecookies = json.load(file)# 加载cookie信息for cookie in cookies:driver.add_cookie(cookie)print('使用已保存的cookie登录')else:driver.get("https://passport.jd.com/new/login.aspx?/")# 等待用户登录并获取cookietime.sleep(10) # 第一次使用需要用户手动登录获取cookie,可根据网络状况修改dictcookies = driver.get_cookies()jsoncookies = json.dumps(dictcookies)with open('cookie.txt', 'w') as f:f.write(jsoncookies)print('cookies已保存')