1. 发送请求添加自定义的cookie信息
- 方法一使用
add_dict_to_cookiejar
函数 添加cookies
- 方法二使用
RequestsCookieJar
对象,然后使用update
函数更新cookies
- 方法一不能同时设置
path
,domain
等参数。方法二可以同时设置 - 使用
request.session
发送请求
百度cooikes如下
核心代码
- 方法一
import requests
# 使用requests.session返回保持会话的对象
s = requests.session()
# cookie字典
cookie_dict = {
"cookie_name_1": "cookie_value_1",
"cookie_name_2": "cookie_value_2",
"cookie_name_3": "cookie_value_3"
}
# 使用add_dict_to_cookiejar
requests.utils.add_dict_to_cookiejar(s.cookies, cookie_dict)
- 方法二
import requests
from requests.cookies import RequestsCookieJar
# 使用requests.session返回保持会话的对象
s = requests.session()
# 使用对象方式设置, 使用RequestsCookieJar
c = RequestsCookieJar()
# 设置cookies
c.set('cookie_name_1', 'cookie_value_1', path='/', domain='.xxx.com')
c.set('cookie_name'_2, 'cookie_value_2', path='/', domain='.xxx.com')
s.cookies.update(c)
完整代码
- 方法一
import requests
# cookie字典
cookie_dict = {"uid": "1", "exp": "2", "server_time": "3"}
# 使用requests.session返回保持会话的对象
s = requests.session()
# 使用add_dict_to_cookiejar
requests.utils.add_dict_to_cookiejar(s.cookies, cookie_dict)
print(s.cookies.get_dict())
# {'exp': '2', 'server_time': '3', 'uid': '1'}
# get请求
url = "http://www.xxx.com"
s.get(url=url)
# post请求
# url = "https://www.xxx.com"
# data = {'pageIndex': 0, 'pageSize': 8}
# s.post(url=url, data=data, verify=False)
- 方法二
import requests
from requests.cookies import RequestsCookieJar
# 使用requests.session返回保持会话的对象
s = requests.session()
# 使用对象方式设置, 使用RequestsCookieJar
c = RequestsCookieJar()
# 设置cookies
# c.set('cookie_name', 'cookie_value')
# c.set('cookie_name', 'cookie_value', path='/', domain='.xxx.com')
c.set('exp', '2')
c.set('server_time', '3')
c.set('uid', '1')
# 使用update函数
s.cookies.update(c)
print(s.cookies.get_dict())
# {'exp': '2', 'server_time': '3', 'uid': '1'}
# get请求
url = "http://www.xxx.com"
s.get(url=url)
# post请求
# url = "https://www.xxx.com"
# data = {'pageIndex': 0, 'pageSize': 8}
# s.post(url=url, data=data, verify=False)
2. 获取响应信息中的cookie信息
- 使用
request.cookies
获取RequestCookieJar
对象 - 使用
dict_from_cookiejar
转换为字典
import requests
# get请求
url = "http://www.baidu.com"
response = requests.get(url=url)
cookies_jar = response.cookies
print(cookies_jar)
# <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
cookies_dict = requests.utils.dict_from_cookiejar(cookies_jar)
print(cookies_dict)
# {'BDORZ': '27315'}