📜  python set cookies - Python (1)

📅  最后修改于: 2023-12-03 15:19:00.299000             🧑  作者: Mango

Python中设置Cookies

当我们浏览网站时,经常会看到一些弹窗或提示框,内容通常是询问我们是否接受Cookies。那么什么是Cookies呢?

Cookies是由网站放置在我们计算机上的小型文本文件,用于跟踪我们在网站上的活动并存储我们的偏好设置。在Python中,我们可以使用http.cookiejar模块来管理Cookies。

设置Cookies

下面是一个简单的Python程序,演示如何设置Cookies:

import http.cookiejar, urllib.request

# 创建一个CookiesJar对象
cj = http.cookiejar.CookieJar()

# 创建一个HTTPCookieProcessor对象,并将CookiesJar对象绑定到它上面
cp = urllib.request.HTTPCookieProcessor(cj)

# 创建一个OpenerDirector对象,并将HTTPCookieProcessor对象与它绑定
opener = urllib.request.build_opener(cp)

# 发送请求
response = opener.open('http://www.example.com')

# 输出Cookies
for cookie in cj:
    print(cookie.name, cookie.value)

上述代码创建了一个CookiesJar对象,将其绑定到HTTPCookieProcessor对象上,然后使用OpenerDirector对象来发送请求。在发送请求之后,我们使用循环遍历CookiesJar对象,输出cookie的名称和值。

保存Cookies

我们可以将Cookies保存到本地文件中,这样以后再访问网站时就可以加载这些Cookies,不必再次登录。下面是一个示例程序,演示如何将Cookies保存到本地文件中:

import http.cookiejar, urllib.request

# 创建一个FileCookieJar对象,指定存储cookies的文件名
filename = 'cookie.txt'
cj = http.cookiejar.MozillaCookieJar(filename)

# 创建一个HTTPCookieProcessor对象,并将CookiesJar对象绑定到它上面
cp = urllib.request.HTTPCookieProcessor(cj)

# 创建一个OpenerDirector对象,并将HTTPCookieProcessor对象与它绑定
opener = urllib.request.build_opener(cp)

# 发送请求
response = opener.open('http://www.example.com')

# 保存Cookies到文件中
cj.save()

上述代码创建了一个FileCookieJar对象,指定存储Cookies的文件名,将其绑定到HTTPCookieProcessor对象上,然后使用OpenerDirector对象发送请求。在发送请求之后,我们调用CookiesJar对象的保存方法将Cookies保存到本地文件中。

加载Cookies

下面是一个演示如何加载Cookies的示例程序:

import http.cookiejar, urllib.request

# 创建一个FileCookieJar对象,指定从哪个文件中加载cookies
filename = 'cookie.txt'
cj = http.cookiejar.MozillaCookieJar()
cj.load(filename)

# 创建一个HTTPCookieProcessor对象,并将CookiesJar对象绑定到它上面
cp = urllib.request.HTTPCookieProcessor(cj)

# 创建一个OpenerDirector对象,并将HTTPCookieProcessor对象与它绑定
opener = urllib.request.build_opener(cp)

# 发送请求
response = opener.open('http://www.example.com')

# 输出Cookies
for cookie in cj:
    print(cookie.name, cookie.value)

此代码创建了一个FileCookieJar对象,并指定它从cookie.txt文件中加载Cookies。然后将CookiesJar对象绑定到HTTPCookieProcessor对象上,并使用OpenerDirector对象发送请求。在发送请求之后,我们循环遍历CookiesJar对象,输出cookie的名称和值。

Python中Cookie的使用非常简单,只需几行代码即可实现常见的Cookies操作。