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 ?
1
Trim21 2017-11-13 18:08:17 +08:00
用 requests 的 session,新建一个 session
|
2
warcraft1236 2017-11-13 18:08:21 +08:00
难道不是 close 这个 connection,然后重新发起一个链接吗?
|
4
xydche 2017-11-13 18:09:14 +08:00 via Android
同一楼,用 session 应该可以
|
5
wd 2017-11-13 18:27:27 +08:00 via iPhone
直接把 cookie 文件删可以不
|
6
Kilerd 2017-11-13 20:21:04 +08:00 1
说了多少次,没能力 /新手就不要碰 urllib。 好好的 requests 放着不用干嘛折腾?
坑爹的国内辣鸡低级教程,复制来复制去,都不肯更新一下文章 |
7
zwik OP @Trim21 我把 session 放一个函数里了,但是多次调用存在同一个 session 的情况? session 需要手动结束吗
|
9
Trim21 2017-11-13 21:23:38 +08:00
@zwik #7 session 会自动管理 cookies,如果你需要清空 cookies 就新生成一个 session 进行请求
session 会自动销毁,不需要手动结束. |
10
q397064399 2017-11-13 21:28:33 +08:00
@zwik #8 session 的实现 就是依赖 cookie 中特定的字段
|
11
Trim21 2017-11-13 21:41:46 +08:00
@Trim21 #9 ps, requests 的 get,post 等方法就是新建了一个 session 然后调用了 session 的 get 或者 post,只是没把 session 返回来,只把结果给你返回来了..
|
12
zwik OP |
14
xNathan 2017-11-14 09:34:34 +08:00
用 requests 建一个全局 session:
s = requests.Session() 清除 cookies: s.cookies.clear() |