您可以通过定义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.cookiejarAPI要求您定义一堆属性和方法,如图所示。)
然后,在“请求”会话中设置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': {}}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)