cookie有效期

一直以为cookie不设置有效期,默认是永久的,结果遇到关闭浏览器后,每次打开项目都去登录页的问题,百度查询后才知道一直以来都想错了,不设置有效期,cookie是会话cookie,只要关闭浏览器就会被清除(是关闭浏览器,不是关闭当前页面)

//有效期为30天的cookie
Cookies.set("rememberMe", this.loginForm.rememberMe, { expires: 30});
//会话cookie,关闭浏览器会被清除
Cookies.set("rememberMe", this.loginForm.rememberMe);
### 使用 Cookies 实现京东网站自动登录 对于基于 Session + Cookie 验证的网站,模拟登录的关键在于获取并管理 Cookie[^1]。通过将这些 Cookie 保存下来或传递给其他程序继续使用,可以实现自动化操作。 #### 获取和设置 Cookies 首先需要导入 `requests` 库用于发送 HTTP 请求,并处理响应中的 Cookies: ```python import requests from http.cookiejar import LWPCookieJar ``` 接着定义函数来执行登录流程,此过程中会获得包含有效 session ID 的 Cookies: ```python def login_jd(username, password): # 设置请求头模仿浏览器行为 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", "Referer": "https://passport.jd.com/new/login.aspx" } # 创建session对象保持会话状态 sess = requests.Session() # 加载已有的cookie文件(如果存在的话) try: sess.cookies = LWPCookieJar(filename="jd_cookies.txt") sess.cookies.load(ignore_discard=True) except FileNotFoundError: pass # 构建POST参数提交表单进行登录... data = { 'loginname': username, 'nloginpwd': password, # ...省略其他必要字段... } response = sess.post( url='https://passport.jd.com/uc/loginService', data=data, headers=headers ) if response.status_code == 200 and '"success":true' in response.text: print("Login successful!") # 将新得到的cookies保存到本地磁盘 with open('jd_cookies.txt', 'wb') as f: pickle.dump(sess.cookies, f) return True else: print("Failed to log in.") return False ``` 成功登录之后,可以通过读取之前保存下来的 cookie 文件来进行后续的操作而无需再次输入用户名密码验证身份。 #### 自动化访问受保护页面 一旦拥有了有效的 Cookies,在发起新的请求时只需将其附加至 Request Headers 中即可无缝浏览那些通常需要认证才能查看的内容: ```python def fetch_protected_page(): sess = requests.session() # 载入先前存储好的cookies try: sess.cookies = LWPCookieJar(filename="jd_cookies.txt") sess.cookies.load(ignore_discard=True) except Exception as e: print(f"Error loading cookies: {e}") return None protected_url = "https://example.jd.com/some-protected-page.html" resp = sess.get(url=protected_url) if resp.status_code != 200: print("Access denied or other error occurred.") return None return resp.content.decode('utf8') ``` 上述代码展示了如何利用 Python 和 Requests 库完成针对特定 Web 应用程序的身份验证过程以及随后的数据抓取任务。需要注意的是实际应用中可能还需要考虑验证码识别等问题[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值