如何在请求中修改cookie

如何在请求中修改cookie,第1张

概述我在官方网站上找不到任何关于cookie修改的文件,即没有关于requests.cookies.RequestsCookieJar的api文件. 例如, session = requests.Session()a = session.head('http://www.google.co.uk')session.cookies <[Cookie(version=0, name=’NID’, v 我在官方网站上找不到任何关于cookie修改的文件,即没有关于requests.cookies.RequestscookieJar的API文件.

例如,

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: https://outofmemory.cn/web/1139687.html

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

发表评论

登录后才能评论

评论列表(0条)

保存