gpt4 book ai didi

Python 请求 session 中特定请求的 cookie

转载 作者:可可西里 更新时间:2023-11-01 17:36:28 27 4
gpt4 key购买 nike

我正在尝试找到一种方法来提取和选择性地删除特定请求发送的 cookie,而不是检查 session cookie jar。

Requests 库存储所有请求的 cookie,我无法访问程序当前正在处理的请求发送的 cookie。

删除 session cookie的示例代码:

import requests


s = requests.Session()
r = s.get('http://httpbin.org/cookies/set', params={'foo': 'bar', 'key2': 'value2'})
print('Before Clear:')
print(s.cookies.items())
>>[('foo', 'bar'), ('key2', 'value2')]

s.cookies.clear(domain='httpbin.org', path='/', name='foo')

print('After Clear:')
print(s.cookies.items())
>>[('key2', 'value2')]

现在,因为这是一个 session ,我似乎无法访问特定请求的 cookie,例如:

r.cookies['foo']

我需要特定请求的 cookie 的原因是因为我正在使用 requests-futures,所以当应用程序处理请求 X 时,我有其他请求同时工作,写到 session cookiejar。

我似乎可以使用的是 extract_cookies API 调用。

顺便问一下,如何在requests-futures中使用Requests API?例如:

requests.utils.add_dict_to_cookiejar(cj, cookie_dict)

这是请求- future 短 source code .

谢谢!

最佳答案

您可以拥有一个函数,该函数仅使用 session 中所需的 cookie 构建请求并发送该请求。

注意:第二个请求不会更新您的 session 变量。因此,如果您使用第二个请求设置另一个 cookie,您的 session cookie 不会更新

import requests

def generateCookie(keys, session):
cookie = {}
for k, v in session.cookies.get_dict().items():
if k in keys:
cookie[k] = v
return cookie


s = requests.Session()
r = s.get('http://httpbin.org/cookies/set', params = {'foo': 'bar', 'key': 'value', 'Larry': 'Moe'})

print('Session Cookies:', s.cookies.items())

p = requests.get('http://httpbin.org/cookies', cookies=generateCookie(['foo', 'Larry'], s))

print(p.text)

print('Session Cookies:', s.cookies.items())


###########
# OUTPUT
###########
Session Cookies: [('Larry', 'Moe'), ('foo', 'bar'), ('key', 'value')]
{
"cookies": {
"Larry": "Moe",
"foo": "bar"
}
}

Session Cookies: [('Larry', 'Moe'), ('foo', 'bar'), ('key', 'value')]

关于Python 请求 session 中特定请求的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30129209/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com