通过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:
# 读取文件中的 cookie
cookies = json.load(file)
# 加载cookie信息
for cookie in cookies:
driver.add_cookie(cookie)
print('使用已保存的cookie登录')
else:
driver.get("https://passport.jd.com/new/login.aspx?/")
# 等待用户登录并获取cookie
time.sleep(10) # 第一次使用需要用户手动登录获取cookie,可根据网络状况修改
dictcookies = driver.get_cookies()
jsoncookies = json.dumps(dictcookies)
with open('cookie.txt', 'w') as f:
f.write(jsoncookies)
print('cookies已保存')