cookie校验

Cookie验证登录与AJAX交互
本文介绍了一种使用Cookie存储用户登录信息的方法,并通过AJAX与后台进行交互验证这些信息。若验证成功则跳转至指定页面并展示用户详细信息;若失败则提示用户错误信息。此外还涉及了长期保存登录状态的功能。
//cookie验证登录
if($.cookie("the_cookie")){

username = $.cookie("the_cookie").split(":")[5];
password = $.cookie("the_cookie").split(":")[9];
//与后台AJAX交互验证登录信息,如果成功转到成功页面,错误重新登录验证
$.ajax({
type : "post",
data : "username=" + username + "&password="+ password,
url:"UserAction.do?method=userLoginM",
success:function(data){
if(data != null && data=="用户名或密码错误!"){
$("#usernameTip").html(data).css("color","red");
$("#username").val("");
$("#usernameTip").css("display","");
$("#password2").val("");

return false;

}else{
document.getElementById('index_login_div').style.display = 'none';
document.getElementById('index_logout_div').style.display = 'block';
nickname = data.split(":")[1];
userId = data.split(":")[3];
phoneno = data.split(":")[5];
score=data.split(":")[7];
password=data.split(":")[9];
//保存cookie时间一个月
if($("#forever").attr("checked")){
$.cookie("the_cookie", data, cookieOption);

}

$("#nickname").text(nickname);
$("#userlogin").text("欢迎你,"+nickname);
$("#score").text(score);
$("#welcome").html("<div class=loginPre> <span class=userLogin>中国@@欢迎您:"+nickname+"</span> </div>");
$("#canDestroy").css("display","");
$("#noDestroy").css("display","none");
if($.cookie("the_cookie")){
$("#s_logout").css("display","none");
}

<% if(null != request.getSession().getAttribute("nickname")) {
%>
$("#index_login_div").css("display","none");
$("#index_logout_div").css("display","block");
<%}%>


}
}
});
$("#loginBtn").click();
}

});
在爬虫中处理 Cookie 校验通常涉及手动或自动管理 Cookie,以确保请求能够成功通过服务器的身份验证机制。 ### 手动处理 Cookie 手动处理 Cookie 的方式是将已获取的 Cookie 值封装到请求头(headers)中,然后将其传递给 `requests.get()` 或 `requests.post()` 方法。这种方式适用于 Cookie 不频繁变化的情况。 ```python import requests headers = { 'User-Agent': 'Mozilla/5.0', 'Cookie': 'your_cookie_here' } response = requests.get('https://example.com', headers=headers) ``` ### 自动处理 Cookie 为了更高效地管理 Cookie,尤其是当 Cookie 频繁变化时,可以使用 `requests.Session()` 创建一个会话对象。该对象会在多次请求之间自动保存和更新 Cookie,从而简化了 Cookie 管理流程[^1]。 ```python import requests session = requests.Session() # 第一次请求,用于捕获并存储 Cookie session.get('https://example.com/login') # 第二次请求,使用携带 Cookie 的 Session 发起 response = session.get('https://example.com/dashboard') ``` ### 处理 Cookie 过期问题 当遇到 Cookie 过期的情况时,可以借助 `Selenium` 工具模拟浏览器行为重新登录网站,并提取新的 Cookie 用于后续请求。这种方法特别适合需要复杂交互或动态生成 Cookie 的场景[^2]。 ```python from selenium import webdriver driver = webdriver.Chrome() driver.get('https://example.com/login') # 模拟登录操作 username = driver.find_element_by_id('username') password = driver.find_element_by_id('password') submit = driver.find_element_by_id('submit') username.send_keys('your_username') password.send_keys('your_password') submit.click() # 提取新的 Cookie cookies = driver.get_cookies() ``` ### 使用 Selenium 更新 Cookie 到 Requests Session 如果希望将 `Selenium` 获取的新 Cookie 应用到 `requests` 的会话中,可以通过以下步骤实现: ```python import requests from selenium import webdriver # 创建 Session 对象 session = requests.Session() # 使用 Selenium 登录并获取 Cookie driver = webdriver.Chrome() driver.get('https://example.com/login') # 模拟登录操作... # 提取 Cookie 并更新到 Session 中 for cookie in driver.get_cookies(): session.cookies.set(cookie['name'], cookie['value']) # 使用更新后的 Session 发起请求 response = session.get('https://example.com/dashboard') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值