总共有三种传递cookie的方式
一、在请求头headers中以字符串的方式添加,如:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36'
'Cookie': 'BAIDUID=EA0EA0EA0EA0EA0EA0EA0EA0EA0EA0E:FG=1; BIDUPSID=EA0EA0EA0EA0EA0EA0EA0EA0EA0EA0E; PSTM=1648230325; BAIDUID_BFESS=EA0EA0EA0EA0EA0EA0EA0EA0EA0EA0E:FG=1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=1435_22501_2250
}
二、在请求参数中添加,必须是字典格式,可以通过response.cookies获得,如:
http.get(url=url, params=params, headers=headers, cookies=cookie)
三、获取session对象,用session对象发起后续请求,该对象请求时会自动携带cookie
# 通过 session函数创建一个持续回话,模拟浏览器行为
http = requests.session()
# 后面的请求都是基于这个回话进行,每次请求该对象会自动添加cookie
http.get(url=url, params=params, headers=headers)
# 通过 session函数创建一个持续回话,模拟浏览器行为
http = requests.session()
# 后面的请求都是基于这个回话进行,每次请求该对象会自动添加cookie
http.get(url=url, params=params, headers=headers)
# 通过json()方法可以直接获取json格式的对象数据
data = response.json()
cookie=response.cookies
http.get(url=url, params=params, headers=headers, cookies=cookie)
print(response.content.decode())