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

2017 年 11 月 13 日
 DiagnosticError

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 ?

6715 次点击
所在节点    Python
14 条回复
Trim21
2017 年 11 月 13 日
用 requests 的 session,新建一个 session
daiqiangbudainiu
2017 年 11 月 13 日
难道不是 close 这个 connection,然后重新发起一个链接吗?
DiagnosticError
2017 年 11 月 13 日
@Trim21 好吧 我试试
xydche
2017 年 11 月 13 日
同一楼,用 session 应该可以
wd
2017 年 11 月 13 日
直接把 cookie 文件删可以不
Kilerd
2017 年 11 月 13 日
说了多少次,没能力 /新手就不要碰 urllib。 好好的 requests 放着不用干嘛折腾?

坑爹的国内辣鸡低级教程,复制来复制去,都不肯更新一下文章
DiagnosticError
2017 年 11 月 13 日
@Trim21 我把 session 放一个函数里了,但是多次调用存在同一个 session 的情况? session 需要手动结束吗
DiagnosticError
2017 年 11 月 13 日
@Kilerd 说得好,下次直接从 requests 开始用 还真是一大堆复制粘贴 /😂
Trim21
2017 年 11 月 13 日
@zwik #7 session 会自动管理 cookies,如果你需要清空 cookies 就新生成一个 session 进行请求
session 会自动销毁,不需要手动结束.
q397064399
2017 年 11 月 13 日
@zwik #8 session 的实现 就是依赖 cookie 中特定的字段
Trim21
2017 年 11 月 13 日
@Trim21 #9 ps, requests 的 get,post 等方法就是新建了一个 session 然后调用了 session 的 get 或者 post,只是没把 session 返回来,只把结果给你返回来了..
DiagnosticError
2017 年 11 月 13 日
@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 日
@zwik #12 是
xNathan
2017 年 11 月 14 日
用 requests 建一个全局 session:
s = requests.Session()

清除 cookies:
s.cookies.clear()

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

https://study.congcong.us/t/406050

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

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

© 2021 V2EX