Python3 requests 中 cookie文件的保存和使用

在python中,我们在使用requests库进行爬虫类和其他请求时,通常需要进行cookie的获取,保存和使用,下面的方法可以将cookie以两种方式存储为txt格式文件


一、保存cookie文件到cookie.txt

在开始之前,要加载如下几个库文件



import requests
import http.cookiejar



1、将cookie保存为curl可读取和使用的cookie文件

在session或者request加入以下代码,以初始化cookie存储



sess = requests.session()
sess.cookies = http.cookiejar.MozillaCookieJar(filename='cookie.txt')


在session请求完毕后,加入如下代码,将cookie保存到cookie.txt文件


sess.cookies.save(ignore_discard=True, ignore_expires=True)


2、将cookie保存为LWPcookiejar文件形式


在session或者request加入以下代码,以初始化cookie存储


sess = requests.session()
sess.cookies = http.cookiejar.LWPCookieJar(filename='cookies.txt')


在session请求完毕后,加入如下代码,将cookie保存到cookie.txt文件


sess.cookies.save(ignore_discard=True, ignore_expires=True)


保存cookie时的两个参数:

  • ignore_discard:save even cookies set to be discarded.

  • ignore_expires:save even cookies that have expired.

二、读取和使用cookie.txt文件


1、curl的cookie文件的读取和使用(MozillaCookieJar)


import requests
import http.cookiejar

load_cookiejar = http.cookiejar.MozillaCookieJar()
load_cookiejar.load('cookies.txt', ignore_discard=True, ignore_expires=True)
load_cookies = requests.utils.dict_from_cookiejar(load_cookiejar)
cookies = requests.utils.cookiejar_from_dict(load_cookies)

session = requests.Session()
session.cookies = cookies


2、LWPcookiejar文件形式的cookie文件的读取和使用

import requests
import http.cookiejar

load_cookiejar = http.cookiejar.LWPCookieJar()
load_cookiejar.load('cookies.txt', ignore_discard=True, ignore_expires=True)
load_cookies = requests.utils.dict_from_cookiejar(load_cookiejar)
cookies = requests.utils.cookiejar_from_dict(load_cookies)

session = requests.Session()
session.cookies = cookies