Python 带 cookie 模拟登录切换多个帐号时,该如何清除 cookie?

2017-11-13 18:06:16 +08:00
 zwik

import cookielib

import urllib2 import cookielib

filename = 'cookie.txt'

cookie = cookielib.MozillaCookieJar(filename) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) postdata = urllib.urlencode({ 'stuid':'201200131012', 'pwd':'23342321' })

loginUrl = '略'

result = opener.open(loginUrl,postdata)

cookie.save(ignore_discard=True, ignore_expires=True)

gradeUrl = '略'

result = opener.open(gradeUrl) print result.read()

当我要切换另一个帐号时,请问如何清除这个全局的 cookie ?

6009 次点击
所在节点    Python
14 条回复
Trim21
2017-11-13 18:08:17 +08:00
用 requests 的 session,新建一个 session
warcraft1236
2017-11-13 18:08:21 +08:00
难道不是 close 这个 connection,然后重新发起一个链接吗?
zwik
2017-11-13 18:09:08 +08:00
@Trim21 好吧 我试试
xydche
2017-11-13 18:09:14 +08:00
同一楼,用 session 应该可以
wd
2017-11-13 18:27:27 +08:00
直接把 cookie 文件删可以不
Kilerd
2017-11-13 20:21:04 +08:00
说了多少次,没能力 /新手就不要碰 urllib。 好好的 requests 放着不用干嘛折腾?

坑爹的国内辣鸡低级教程,复制来复制去,都不肯更新一下文章
zwik
2017-11-13 21:13:43 +08:00
@Trim21 我把 session 放一个函数里了,但是多次调用存在同一个 session 的情况? session 需要手动结束吗
zwik
2017-11-13 21:15:13 +08:00
@Kilerd 说得好,下次直接从 requests 开始用 还真是一大堆复制粘贴 /😂
Trim21
2017-11-13 21:23:38 +08:00
@zwik #7 session 会自动管理 cookies,如果你需要清空 cookies 就新生成一个 session 进行请求
session 会自动销毁,不需要手动结束.
q397064399
2017-11-13 21:28:33 +08:00
@zwik #8 session 的实现 就是依赖 cookie 中特定的字段
Trim21
2017-11-13 21:41:46 +08:00
@Trim21 #9 ps, requests 的 get,post 等方法就是新建了一个 session 然后调用了 session 的 get 或者 post,只是没把 session 返回来,只把结果给你返回来了..
zwik
2017-11-13 22:15:39 +08:00
@Trim21 是这样用吧?
def getImg():
s = requests.Session()
s.get(loginPage,headers=header)
r = s.post(subUrl,data=postData)
r = s.get(imageUrl)
Trim21
2017-11-13 23:09:28 +08:00
@zwik #12 是
xNathan
2017-11-14 09:34:34 +08:00
用 requests 建一个全局 session:
s = requests.Session()

清除 cookies:
s.cookies.clear()

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/406050

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX