乐闻世界logo
搜索文章和话题

如何将请求( python ) Cookie 保存到文件中?

4 个月前提问
4 个月前修改
浏览次数25

1个答案

1

在使用Python进行网络请求时,有时需要保存和加载Cookies来保持会话状态,比如自动登录等场景。我们可以使用requests库来发送请求,并利用http.cookiejar模块来保存Cookies到文件中。以下是一个简单的实例说明如何做到这一点:

步骤 1: 导入必要的库

首先,需要确保安装了requests库。如果未安装,可以通过pip安装:

bash
pip install requests

然后在Python脚本中导入必要的模块:

python
import requests import http.cookiejar as cookiejar

步骤 2: 创建一个会话并发送请求

使用requests.Session()创建一个会话,这样可以自动处理Cookies。

python
# 创建会话 session = requests.Session() # 发送请求 response = session.get('https://www.example.com/login')

步骤 3: 保存Cookies到文件

使用http.cookiejar中的LWPCookieJarMozillaCookieJar来保存Cookies。这两种格式略有不同,但都可以用来保存和读取Cookies。

python
# 创建一个LWPCookieJar实例 cookie_jar = cookiejar.LWPCookieJar('cookies.txt') # 保存会话中的Cookies到文件 cookie_jar.save(session.cookies, ignore_discard=True, ignore_expires=True)

这里ignore_discardignore_expires参数可以帮助保存会话即使服务器指示Cookies应该被丢弃或已过期。

步骤 4: 从文件加载Cookies

如果需要再次使用这些Cookies,可以从文件中加载它们:

python
# 创建一个新的会话 new_session = requests.Session() # 从文件加载Cookies cookie_jar = cookiejar.LWPCookieJar() cookie_jar.load('cookies.txt') # 将加载的Cookies应用到会话 new_session.cookies = cookie_jar

完整示例代码

将上述步骤整合到一起,形成一个完整的示例:

python
import requests import http.cookiejar as cookiejar # 创建会话 session = requests.Session() # 发送请求 response = session.get('https://www.example.com/login') # 保存Cookies cookie_jar = cookiejar.LWPCookieJar('cookies.txt') cookie_jar.save(session.cookies, ignore_discard=True, ignore_expires=True) # 加载Cookies并创建新会话 new_session = requests.Session() cookie_jar.load('cookies.txt') new_session.cookies = cookie_jar # 使用新会话发送请求 response = new_session.get('https://www.example.com/dashboard')

这段代码演示了如何从网站登录,保存Cookies,并在新的会话中使用这些Cookies访问受限内容。这在自动化测试或爬虫中非常有用。

2024年8月12日 11:28 回复

你的答案