上一篇文章我们了解到了cookie和session,今天我们通过两个案例,对比一下!!!
一、cookie
将浏览器中的cookie信息封装到请求头中
#需求:将个人首页保存到本地
import requests
# 请求头
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36",
'Cookie': '_ref=5fb72de8a61f9; BAIDU_SSP_lcr=https://www.baidu.com/link?url=EaN4e7LkN3eLd_cJW7DfItZgfQG4xT3YNFwZ4JkR5pFsHQ3TON8jrZtSMjGcy5Qj&wd=&eqid=d4d43e3f00005268000000035fb72de6; _vid=C924C3E490500001EFF01DF918E0B960; _user=bb3f765920df40ca11e14b2a1ae416b4_181771223_1605840378; _preemail=18524158889%40163.com; _uid=181771223; _email=18524158889; _laid=0; _sso=181771223; SERVERID=_srv80-67_; Hm_lvt_500f908d39095efce74d0e9c64f55ffb=1605840384; Hm_lpvt_500f908d39095efce74d0e9c64f55ffb=1605840384; onlinenum=c%3A0; noFocusContent=1; wpresence=PjO5bXeF1OugZsNkrNBQa0uXLM8YNg43X7ct_g.ZGZ0MTgxNzcxMjIz'
}
response = requests.get(url='http://www.kaixin001.com/home/index.php', headers=headers)
# 保存文件
with open("开心网—cookie.html", "w", encoding='utf-8') as f:
f.write(response.text)
输出结果就是把数据保存到HTML中:
二、session
在requests里,session对象是一个非常常用的对象,这个对象代表一次用户会话;客户端浏览器链接服务器开始,到客户端浏览器与服务器断开。
会话能让我们在跨请求时保存某些参数,比如在同一个session实例发出的所有请求之间保持cookie。
每次通过查找cookie很麻烦,需要复制粘贴,所有使用session来完成登录,只需要账户和密码就可以了。
import requests
#创建seesion对象
ss = requests.session()
#使用session对象发起请求
#确定请求的url:是form表单中action属性的值
#确定请求的方式:是form表单中method属性的值
#定义参数
# 这里需要创建账号和密码
data = {
'loginemail': '账号',
'password': '密码'
}
response = ss.post(url='https://security.kaixin001.com/login/login_post.php', data=data)
# 保存文件
with open('开心网-session.html', 'w', encoding='utf-8') as f:
f.write(response.text)
通过这两个代码我们可以很清楚的看到cookie和seesion的区别吧。