以csdn为例,代码分为两部分。
一、csdn_get_cookies.py为半手动登录网站后获取cookies
二、csdn_use_cookies.py为使用获取到的cookies免登录上网站
#获取登录cookiesfrom selenium import webdriver
import jsoncsdn_driver = webdriver.Chrome()
url = "https://www.csdn.net/"
csdn_driver.get(url)###手动完成登录后,随便在控制台输入内容,就保存下来了
input("请手动扫描或者输入账密进行登录,登录成功后随便输入内容:")
dictCookies = csdn_driver.get_cookies()
jsonCookies = json.dumps(dictCookies)with open('csdn_cookies.txt', 'w') as f:f.write(jsonCookies)
print('cookies保存成功!')
#使用cookies登录
from selenium import webdriver
import time
import jsoncsdn_driver = webdriver.Chrome()
csdn_driver.maximize_window() #浏览器最大化
url = "https://i.csdn.net/#/user-center/profile"
csdn_driver.get(url)
with open('csdn_cookies.txt', 'r', encoding='utf8') as f:listCookies = json.loads(f.read())
for cookie in listCookies:cookie_dict = {### 这个domain看cookies第一个字段就知道了,需要找到并填入'domain': ".csdn.net",'name': cookie.get('name'),'value': cookie.get('value'),"expires": '','path': '/','httpOnly': False,'HostOnly': False,'Secure': False}csdn_driver.add_cookie(cookie_dict)
csdn_driver.refresh() # 刷新网页cookies才成功
csdn_driver.get(url)
time.sleep(50)
成功免登录进入网站:
现在问题是,不知道这个cookies可以持续多久,即多久失效,还有就是每个网站的cookies有效期是否都不相同,有研究过的朋友可以留言交流。