保存cookie信息

什么是cookie:

Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。cookie某些网站为了辨别用户身份, 只有登陆某个页面才可以访问;登陆信息保存方式: 进行一个会话跟踪(session),将用户的相关信息保存到本地的浏览器中;

保存cookie

1.获取cookie信息保存到变量
CookieJar---->FileCookieJar---->MozilaCookie

from collections import Iterable
from urllib.parse import urlencode
from urllib.request import  HTTPCookieProcessor
from http import cookiejar
from urllib import request

1)声明一个类,将cookie信息保存到变量中;

cookie = cookiejar.CookieJar()

2)通过urllib.request的HTTPCookieProcessor创建cookie请求器;

handler = HTTPCookieProcessor(cookie)

3)通过处理器创建opener; ==== urlopen

opener = request.build_opener(handler)

4)打开url页面

response = opener.open('http://www.baidu.com')
print(cookie)
print(isinstance(cookie, Iterable))
for item in cookie:
     print("Name=" + item.name, end='\t\t')
     print("Value=" + item.value)

在这里插入图片描述2. 获取cookie信息保存到本地文件
1)指定年cookie文件存在的位置

cookieFilenName = 'doc/cookie.txt

2). 声明对象MozillaCookieJar, 用来保存cookie到文件中;

cookie = cookiejar.MozillaCookieJar(filename=cookieFilenName)

3)通过urllib.request的 HTTPCookieProcessor创建cookie请求器;

handler = HTTPCookieProcessor(cookie)

4). 通过处理器创建opener; ==== urlopen

 opener = request.build_opener(handler)

 response = opener.open('http://www.baidu.com')
 print(response.read().decode('utf-8'))
 # 保存到本地文件中;
 cookie.save(cookieFilenName)

3. 从文件中获取cookie并访问
1). 指定cookie文件存在的位置;

cookieFilenName = 'doc/cookie.txt'

2). 声明对象MozillaCookieJar, 用来保存cookie到文件中;

cookie = cookiejar.MozillaCookieJar()

3).添加一步操作, 从文件中加载cookie信息

cookie.load(cookieFilenName)

4).通过urllib.request的 HTTPCookieProcessor创建cookie请求器

handler = HTTPCookieProcessor(cookie)

5).通过处理器创建opener; ==== urlopen

opener = request.build_opener(handler)


response = opener.open('http://www.baidu.com')
print(response.read().decode('utf-8'))

4. 利用cookie模拟登陆网站的步骤

88模拟登陆, 并保存cookie信息88模拟登陆, 并保存cookie信息

cookieFileName = 'cookie01.txt'
cookie = cookiejar.MozillaCookieJar(filename=cookieFileName)
handler = HTTPCookieProcessor(cookie)
opener = request.build_opener(handler)

这里的url是教务网站登陆的url;

loginUrl = 'xxxxxxxxxxxxxx'
postData = urlencode({
    'stuid': '1302100122',
    'pwd': 'xxxxxx'
})
response = opener.open(loginUrl, data=postData)
cookie.save(cookieFileName)

bs4
8根据保存的cooie信息获取其他网页的内容eg: 查成绩/选课

gradeUrl = ''
response = opener.open(gradeUrl)
print(response.read())
JCEF 是基于 Chromium Embedded Framework (CEF) 的 Java 库,可以方便地在 Java 应用程序中嵌入 Chrome 浏览器。要在 JCEF 中保存 cookie,可以使用 CEF CookieManager 接口提供的方法。 具体步骤如下: 1. 获取当前网站的 CookieManager 对象:在 JCEF 中,可以通过 `CefCookieManager.getGlobalManager()` 获取全局 CookieManager 对象,也可以使用 `CefRequestContext.getGlobalContext()` 获取全局请求上下文,并通过 `getRequestContext().getCookieManager(null)` 获取当前请求上下文的 CookieManager 对象。 2. 创建一个 Cookie 对象并设置相应的属性:Cookie 对象中包含了 cookie 的各种属性,如名称、值、域名、路径、过期时间等。可以使用 `CefCookie.create()` 方法创建一个新的 Cookie 对象,并使用 `setName()`、`setValue()`、`setDomain()`、`setPath()`、`setExpirationDate()` 等方法设置相应的属性。 3. 将 Cookie 对象添加到 CookieManager 中:使用 `setCookie()` 方法将 Cookie 对象添加到 CookieManager 中即可。 以下是示例代码: ``` // 获取当前网站的 CookieManager 对象 CefCookieManager cookieManager = CefCookieManager.getGlobalManager(); // 创建一个 Cookie 对象并设置相应的属性 CefCookie cookie = CefCookie.create(); cookie.setName("cookie_name"); cookie.setValue("cookie_value"); cookie.setDomain("example.com"); cookie.setPath("/"); cookie.setExpirationDate(expirationDate); // 过期时间 // 将 Cookie 对象添加到 CookieManager 中 cookieManager.setCookie("https://example.com", cookie); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值