Cookie (py2) 等于 http.cookie (py3)
cookielib (py2) 等于 http.cookiejar (py3)html
import http.cookiejar, urllib.request cj = http.cookiejar.CookieJar() opener = urllib.request.build_opener(urllib.request.HTTPCookieProcesser(cj)) r = opener.open('http://douban.com') # 此时, cookie 已经保存在 cj 中了 for i in cj: print(i.name, i.value) 输出: bid "a3YOzYxKBc9" ll "219731"
import http.cookiejar, urllib.request cj = http.cookiejar.MozillaCookieJar('cookie.txt') # cj = http.cookiejar.LWPCookieJar() # 可读性更好 opener = urllib.request.build_opener(urllib.request.HTTPCookieProcesser(cj)) r = opener.open('http://douban.com') cj.save() # 也能够在这里指定保存的文件名 cj.save('new_cookie.txt') # save() 可设置过时参数 ignore_discard=True: 即便将被丢弃也保存. ignore_expires=True: 即便过时也保存 # cj.save(ignore_discard=True, ignore_expires=True)
import http.cookiejar, urllib.request cj = http.cookiejar.MozillaCookieJar() cj.load('cookie.txt') opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj)) req = urllib.request.Request('http://douban.com') r = opener.open(req) # 上两句能够这样 # r = opener.open('http://douban.com')
import cookielib, urllib2 cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcesser(cj)) r = opener.open('http://douban.com')
>>> r = requests.get('http://douban.com') >>> r.cookies.items() [('bid', '"/cMAIpJIhm0"'), ('ll', '"178229"')]
>>> url = 'http://httpbin.org/cookies' >>> cookies = dict(cookies_are='working') >>> r = requests.get(url, cookies=cookies) >>> r.text '{"cookies": {"cookies_are": "working"}}'
s = requests.Session() s.get('http://httpbin.org/cookies/set/sessioncookie/123456789') r = s.get("http://httpbin.org/cookies") print(r.text) # '{"cookies": {"sessioncookie": "123456789"}}' s.cookies['cookie1'] = 'a' s.cookies['cookie2'] = 'b'
将一个Session实例的cookies属性设置赋值成 一个 CookieJar 实例 import http.cookiejar s = requests.session # 或 s = requests.Session() s.cookies = http.cookiejar.LWPCookieJar('mycookie.txt') s.get('http://douban.com') s.save(ignore_expires=True, ignore_discard=True) # 已保存到 mycookie.txt s.cookies.clear() # 清除 s.cookies.load('mycookie.txt') # 从文件加载 # s.cookies.revert() # 这个方法等于先清除后加载
python3 http.cookiejar
python2 cookielib
参考1
参考2
参考3
参考4
requests API文档python