如何使用Python请求库禁用cookie处理?

如何使用Python请求库禁用cookie处理?,第1张

如何使用Python请求库禁用cookie处理?

您可以通过定义cookie政策来拒绝所有cookie来做到这一点:

from http import cookiejar  # Python 2: import cookielib as cookiejarclass BlockAll(cookiejar.cookiePolicy):    return_ok = set_ok = domain_return_ok = path_return_ok = lambda self, *args, **kwargs: False    netscape = True    rfc2965 = hide_cookie2 = False

(请注意,

http.cookiejar
API要求您定义一堆属性和方法,如图所示。)

然后,在“请求”会话中设置cookie策略:

import requestss = requests.Session()s.cookies.set_policy(BlockAll())

现在它将不存储或发送cookie:

s.get("https://httpbin.org/cookies/set?foo=bar")assert not s.cookies

顺便说

requests
一句,如果您查看代码,则包中的便捷方法(而不是
requests.Session
对象上的便捷方法)
Session
每次都会构造一个新方法。因此,cookie不会在单独的调用之间保留
requests.get
。但是,如果第一页设置cookie,然后发出HTTP重定向,则目标页面将看到cookie。(这是HTTPBin
/cookies/set
调用发生的情况,该调用重定向到
/cookies
。)

因此,根据您要重定向的行为,您可能不需要执行任何特殊 *** 作。比较:

>>> print(requests.get("https://httpbin.org/cookies/set?foo=bar").json()){'cookies': {'foo': 'bar'}}>>> print(requests.get("https://httpbin.org/cookies").json()){'cookies': {}}>>> s = requests.Session()>>> print(s.get("https://httpbin.org/cookies/set?foo=bar").json()){'cookies': {'foo': 'bar'}}>>> print(s.get("https://httpbin.org/cookies").json()){'cookies': {'foo': 'bar'}}>>> s = requests.Session()>>> s.cookies.set_policy(BlockAll())>>> print(s.get("https://httpbin.org/cookies/set?foo=bar").json()){'cookies': {}}>>> print(requests.get("https://httpbin.org/cookies").json()){'cookies': {}}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5646746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存