python selenium 保存cookie 读取cookie

这篇博客介绍了如何使用Python的Selenium库来保存和读取cookie。首先,文章详细讲解了如何将获取到的cookie保存到文件中,接着阐述了如何从文件中重新加载cookie,以实现浏览器会话的持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 保存cookie到文件中

cookies = self.browser.get_cookies()
        jsonCookies = json.dumps(cookies)
        with open('cookies.json', 'w') as f:
            f.write(jsonCookies)
 

2.从文件中读取cookie

 

self.browser.get(self.start_url)
        self.browser.delete_all_cookies()

        with open('cookies.json', 'r', encoding='utf-8') as f:
            listCookies = json.loads(f.read())
        for cookie in listCookies:
            self.browser.add_cookie({
                'domain': cookie['domain'],
                'name':cookie['name'],
                'value':cookie['value'],
                'path':'/',
                'expires':None
            })
实验要求分析: 该实验要求实现用户的登录功能,使用 Cookies 进行会话控制。具体要求如下: 1. 建立数据库 cookie,新建一张用户表 user,包含姓名字段 name 和密码字段 pwd。 2. 在 index.php 文件中,提供两个输入框,让用户输入用户名和密码,并提交表单到 login_pro.php 文件中。 3. 在 login_pro.php 文件中,使用 md5 对密码进行加密处理,并连接数据库,判断用户是否存在。 4. 如果存在,使用 header 重定向到 result.php 文件中,否则提示错误。 5. 在 result.php 文件中,输出欢迎信息。 文件目录设计: ``` - index.php - login_pro.php - result.php - assets/ - css/ - style.css - js/ - script.js ``` 其中,assets 文件夹存放静态资源,包括 CSS 和 JS 文件。 数据库设计: ``` CREATE DATABASE cookie; USE cookie; CREATE TABLE user ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, pwd VARCHAR(50) NOT NULL, PRIMARY KEY (id) ); INSERT INTO user (name, pwd) VALUES ('admin', '21232f297a57a5a743894a0e4a801fc3'); ``` 在上面的 SQL 语句中,使用 md5 对密码进行了加密处理,admin 的密码为 admin。 实验过程: 1. 在 index.php 文件中,提供两个输入框和一个提交按钮,让用户输入用户名和密码,并提交表单到 login_pro.php 文件中。 ``` <form method="post" action="login_pro.php"> <label for="name">Name:</label> <input type="text" id="name" name="name" required> <label for="pwd">Password:</label> <input type="password" id="pwd" name="pwd" required> <button type="submit">Login</button> </form> ``` 2. 在 login_pro.php 文件中,对提交的数据进行处理,使用 md5 对密码进行加密处理,并连接数据库,判断用户是否存在。 ``` <?php session_start(); if (isset($_POST['name']) && isset($_POST['pwd'])) { $name = $_POST['name']; $pwd = md5($_POST['pwd']); $conn = mysqli_connect('localhost', 'root', 'password', 'cookie'); if (!$conn) { die('Connection failed: ' . mysqli_connect_error()); } $sql = "SELECT * FROM user WHERE name='$name' AND pwd='$pwd'"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 用户存在,设置 Cookies,并重定向到 result.php 页面 setcookie('name', $name, time()+3600); header('Location: result.php'); exit; } else { // 用户不存在,输出错误信息 echo 'Invalid username or password'; } mysqli_close($conn); } ?> ``` 3. 在 result.php 文件中,输出欢迎信息。 ``` <?php session_start(); if (isset($_COOKIE['name'])) { $name = $_COOKIE['name']; echo 'Welcome, ' . $name . '!'; } else { header('Location: index.php'); exit; } ?> ``` 最后,将 CSS 和 JS 文件引入到 HTML 页面中,美化页面和增加交互体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瓦力冫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值