selenium通过cookie实现自动登录

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

最近在学习写python的自动化脚本,但是发现测试工具打开之后的网页是没有用户自己打开浏览器时记录的cookie,简单来说也就是打开的网站不会自己登录,所以想要简单的实现下如何用cookie来登录
总的来说分两步
目录
第一步,把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保存成功!')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
下次启动就能实现自动登录了

第二步,把保存到本地的cookies注入到浏览器里面
首先要清楚网站的domain是什么,去cookies里面找


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/")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
这样最后启动的浏览器就能自动登录了
————————————————
版权声明:本文为CSDN博主「小梁说代码」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45722494/article/details/128513744

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值