1、cookie与session的不同
cookie数据存放在客户的浏览器上,session数据放在服务器上
cookie存放在客户端,安全性不是很高,容易被窃取
session存放在服务器,每一次访问都会占用服务器的空间,所以性能较低
cookie保存数据最多4K,session没有限制
2、获取cookie请求,例子:
import requests
r = requests.get("https://www.baidu.com/")
for a in r.cookies:
print(a.name, a.value)
3、简单发送cookie,例子:
import requests
url = "http://httpbin.org/get?"
cookies = {"aaa": "bbb"}
r = requests.get(url, cookies=cookies)
print(r.text)
4、复杂发送cookie,例子:
import requests
url = "http://httpbin.org/get?"
s = requests.session()
c = requests.cookies.RequestsCookieJar()
c.set('c-name', 'c-value', path='/xxx/uuu', domain='.test.com')
s.cookies.update(c)
print(s.cookies)
r = requests.get(url, cookies=c)
print(r.text)
5、保持会话同步,例子:
import requests
url_one = "http://httpbin.org/get?"
url_two = "http://httpbin.org/cookies/set/sessioncookie/123456789"
r = requests.get(url_one)
print(r.text)
print("----------------------------------------------------------")
s = requests.session()
s.get(url_two)
r = s.get(url_one)
print(r.text)
6、保存会话信息,例子:
url = "http://httpbin.org/get?"
header1 = {"test1": "111"}
header2 = {"test2": "222"}
s = requests.session()
s.headers.update(header1)
r = s.get(url, headers=header2)
print(r.text)
7、删除已存在的会话信息,保存为None,例子:
import requests
url = "http://httpbin.org/get?"
header1 = {"testA": "AAA"}
header2 = {"testB": "BBB"}
s = requests.session()
s.headers.update(header1)
r = s.get(url, headers=header2)
print(r.text)
print("----------------------")
s.headers['testA'] = None
r1 = s.get(url, headers=header2)
print(r1.text)
8、提供默认数据,例子:
import requests
s = requests.Session()
s.auth = ("user", "pass")
s.headers.update({"x-test1": "true"})
t = s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})
print(t.text)