小梁说代码

V1

2023/01/01阅读:16主题:极简黑

selenium利用cookies实现自动登录

cookies是用户的凭证,只要有cookies这一串字符串,服务器那头就能识别是哪个用户。

原理很简单,首先手动完成登录后,把cookies保存到本地,下次再把cookies注入到浏览器里面,就自动实现了登录

第一步,把cookies保存到本地

from selenium import webdriver
import json

### 下面是chromedriver路径,自己填
browser = webdriver.Chrome("###########")
### 打开要自动登录的网站,比如说csdn
browser.get("https://www.csdn.net/")
###手动完成登录后,随便在控制台输入内容,就保存下来了
input("等待登录成功,登录成功后随便输入内容。")
dictCookies = browser.get_cookies()
jsonCookies = json.dumps(dictCookies)

with open('cookies.txt''w'as f:
    f.write(jsonCookies)
print('cookies保存成功!')

下次启动就能实现自动登录了

第二步,把保存到本地的cookies注入到浏览器里面

首先要清楚网站的domain是什么,去cookies里面找

image-20230101164658896
image-20230101164658896
from selenium import webdriver
import json

### 下面是chromedriver路径,自己填
browser = webdriver.Chrome("###########")
### 打开要自动登录的网站
browser.get("https://www.csdn.net/")
with open(name, 'r', encoding='utf8'as f:
    listCookies = json.loads(f.read())
for cookie in listCookies:
    cookie_dict = {
        ### 这个domain看cookies第一个字段就知道了,需要找到并填入
        'domain''########',
        'name': cookie.get('name'),
        'value': cookie.get('value'),
        "expires"'',
        'path''/',
        'httpOnly'False,
        'HostOnly'False,
        'Secure'False
        }
    browser.add_cookie(cookie_dict)
    # browser.refresh()  # 刷新网页,cookies才成功
browser.get("https://www.csdn.net/")

这样最后启动的浏览器就能自动登录了

- END -

分类:

后端

标签:

Python

作者介绍

小梁说代码
V1

北大博士生