首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >requests.Session()从CookieJar加载cookies

requests.Session()从CookieJar加载cookies
EN

Stack Overflow用户
提问于 2015-03-23 06:01:27
回答 3查看 13.6K关注 0票数 4

如何将CookieJar加载到新的requests.Session对象?

代码语言:javascript
运行
复制
cj = cookielib.MozillaCookieJar("mycookies.txt")
s = requests.Session()

这是我创建的,现在会话将存储cookie,但我希望它具有来自文件的cookie

(会话应加载cookieJar)。如何才能做到这一点?

我搜索了文档,但我只能找到代码示例,它们永远不会加载cookieJar,只是在一个会话期间保存cookie。

EN

Stack Overflow用户

发布于 2020-05-31 13:41:02

Python3.x代码,功能齐全且实现良好的示例。代码不言自明。

这段代码正确地处理“会话cookie”,并在两次运行之间保留它们。默认情况下,这些文件不会保存到磁盘,这意味着大多数网站会要求您在两次运行之间不断登录。但是使用下面的技术,所有的会话cookie也会被保留!

这就是您要查找的代码。

代码语言:javascript
运行
复制
import os
import pathlib
import requests
from http.cookiejar import MozillaCookieJar


cookiesFile = str(pathlib.Path(__file__).parent.absolute() / "cookies.txt")  # Places "cookies.txt" next to the script file.
cj = MozillaCookieJar(cookiesFile)
if os.path.exists(cookiesFile):  # Only attempt to load if the cookie file exists.
    cj.load(ignore_discard=True, ignore_expires=True)  # Loads session cookies too (expirydate=0).

s = requests.Session()
s.headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
    "Accept-Language": "en-US,en"
}
s.cookies = cj  # Tell Requests session to use the cookiejar.

# DO STUFF HERE WHICH REQUIRES THE PERSISTENT COOKIES...
s.get("https://www.somewebsite.com/")

cj.save(ignore_discard=True, ignore_expires=True)  # Saves session cookies too (expirydate=0).
票数 5
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29200357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档