JS操作Cookies的几个实用方便的函数

 
function GetCookieVal(offset)
//获得Cookie解码后的值
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function SetCookie(name, value)
//设定Cookie值
{
var expdate = new Date();
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
document.cookie = name + “=” + escape (value) +((expires == null) ? “” : (”; expires=”+ expdate.toGMTString()))
+((path == null) ? “” : (”; path=” + path)) +((domain == null) ? “” : (”; domain=” + domain))
+((secure == true) ? “; secure” : “”);
}
function DelCookie(name)
//删除Cookie
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + “=” + cval + “; expires=”+ exp.toGMTString();
}
function GetCookie(name)
//获得Cookie的原始值
{
var arg = name + “=”;
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return GetCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于百度网盘需要登录后才能访问,所以需要使用用户名和密码进行登录。一般的做法是使用Cookies或者Session来模拟登录,但是我们也可以使用百度网盘提供的API接口来实现无需Cookies的访问。下面是一个使用API接口实现免Cookies访问百度网盘的Python函数示例: ```python import requests import json def baidu_pan_login(username, password): # 获取token url1 = 'https://passport.baidu.com/v2/api/?getapi&tpl=netdisk&subpro=netdisk_web&apiver=v3&class=login&logintype=basicLogin&callback=bd__cbs__tff7g1' resp1 = requests.get(url1) token = resp1.text.split('"token" : "')[1].split('"')[0] # 登录 url2 = 'https://passport.baidu.com/v2/api/?login' headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'Referer': 'https://pan.baidu.com/disk/home' } data = { 'username': username, 'password': password, 'token': token, 'tpl': 'netdisk', 'subpro': 'netdisk_web', 'apiver': 'v3', 'tt': int(token[:13]), 'codestring': '', 'safeflg': '0', 'u': 'https://pan.baidu.com/disk/home', 'isPhone': '', 'detect': '1', 'gid': '', 'quick_user': '0', 'logintype': 'basicLogin', 'logLoginType': 'pc_loginBasic', 'idc': '', 'loginmerge': 'true', 'foreignusername': '', 'traceid': '', 'callback': 'parent.bd__pcbs__raqa24' } resp2 = requests.post(url2, headers=headers, data=data) resp_json = json.loads(resp2.text) # 获取bdstoken url3 = 'https://pan.baidu.com/disk/home' headers = { 'Referer': 'https://pan.baidu.com/disk/home' } cookies = resp2.cookies.get_dict() resp3 = requests.get(url3, headers=headers, cookies=cookies) bdstoken = resp3.text.split('bdstoken":"')[1].split('"')[0] return bdstoken ``` 该函数的思路是通过API接口先获取登录所需的token,然后使用用户名、密码和token向API接口发起登录请求,并从返回结果中获取bdstoken,最终返回bdstoken用于后续操作。注意,该函数只适用于Python 3.x版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值