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