我希望有人可以帮助我从字典列表中创建一个包含多个 cookie 的 cookie jar。这是在python3中。
我尝试了几种不同的方法,但它们要么覆盖以前的 cookie,要么不接受非标准的 cookie 属性(例如 httpOnly)
cookie 从 Flaresolverr (我相信它与 selenium 的输出相同)作为列表中的多个字典返回,例如:
cookies = [
{
"name": "ASP.NET_SessionId",
"value": "SOMEVALUE",
"domain": "sub.mydomain.co.uk",
"path": "/",
"expires": -1,
"size": 41,
"httpOnly": true,
"secure": false,
"session": true
},
{
"name": "__cfduid",
"value": "SOMEVALUE",
"domain": ".mydomain.co.uk",
"path": "/",
"expires": 1622898293.967355,
"size": 51,
"httpOnly": true,
"secure": true,
"session": false,
"sameSite": "Lax"
}
]
因此,如果我尝试将它们全部添加到 cookie 罐中,您会看到“ __cfduid
”是罐中唯一的 cookie:
r = requests.session()
for c in cookies:
r.cookies.update(c)
print(r.cookies)
<RequestsCookieJar[<Cookie domain=.mydomain.co.uk for />, <Cookie expires=1622898293.967355 for />, <Cookie httpOnly=True for />, <Cookie name=__cfduid for />, <Cookie path=/ for />, <Cookie sameSite=Lax for />, <Cookie secure=True for />, <Cookie session=False for />, <Cookie size=51 for />, <Cookie value=SOMEVALUE for />]>
我也尝试过jar = requests.cookies.RequestsCookieJar()
,jar.set(xxxx)
但它不喜欢非标准的 cookie 属性(例如 httpOnly)
我不能r= requests.get
从 r.cookies 中获取 cookie,因为 cookie 在 requests.text(或 requests.json)中作为 json 返回,而不是作为会话本身的一部分。
我已经做了很多搜索,但找不到任何有用的东西 - 任何帮助将不胜感激,谢谢!