例如,
session = requests.Session()a = session.head('http://www.Google.co.uk')session.cookies
<[cookie(version=0,
name=’NID’,
value=’67=CXdvwjj9sjd-13Y0VyRQyUs8PxXaxyMhiGrrozXP7RWSjf-5alV4D17ORcfnZNYLAmlHXSVlHuS5LcuE4-v6vnzRQS-Gt72hgbGye0apoBoW5KJeVXA2o2E0gE-8jIEY’,
port=None,port_specifIEd=False,domain=’.Google.co.uk’,
domain_specifIEd=True,domain_initial_dot=True,path=’/’,
path_specifIEd=True,secure=False,expires=1424443599,discard=False,
comment=None,comment_url=None,rest={‘httpOnly’: None},
rfc2109=False),cookie(version=0,name=’PREF’,
value=’ID=41c5d5cac7d22262:FF=0:TM=1408632399:LM=1408632399:S=wTfY_LkkZnSsBxol’,expires=1471704399,rest={},rfc2109=False)]>
现在我想改变’NID’的值
如果我做session.cookies [‘NID’] =’abc’,它最终会出现重复的密钥,如下所示:
<[cookie(version=0,value=’abc’,port=None,domain=”,
domain_specifIEd=False,domain_initial_dot=False,expires=None,discard=True,name=’NID’,rfc2109=False)]>
我当前的方法是先session.cookies [‘NID’] = None,这会删除键/值,然后session.cookies [‘NID’] =’abc’这有时会起作用,但它完全忽略了cookies属性.
这样做的正确方法是什么?
解决方法 如您所见,您的cookie没有为其指定域名,因此它实际上是另一个cookie.使用域和路径
session.cookies.set('NID','abc',domain='.Google.co.uk',path='/')
将设置新的cookie而不是之前定义的cookie.
RequestcookieJar是cookielib.cookieJar的包装器,但如果你想就地修改cookie属性(以便引用实际的cookielib.cookie对象),我发现没有比使用迭代器更好的方法了.
如果您查看requests.cookies.RequestscookieJar的来源,则没有其他方法可以让您自己访问项目而不是其名称/值字段.
总结以上是内存溢出为你收集整理的如何在请求中修改cookie全部内容,希望文章能够帮你解决如何在请求中修改cookie所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)