requests 库会话处理
会话处理
http://www.jokeji.cn/
这是一个笑话内容的网站,使用的是http协议
我们知道http协议是一种无状态的协议
会话处理 .py
import requests
login_url = 'http://www.jokeji.cn/user/c.asp'
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
}
# 请求体
params = {
'u':'bobo666',
'p':'a12345678',
'sn':'1',
't':'big',
}
# 发起get请求以登陆
res = requests.get(url=login_url,headers=headers,params=params)
print(res.text)
#显示true 登陆成功
# 接下来访问主页
main_url = 'http://www.jokeji.cn/User/MemberCenter.asp'
res2 = requests.get(url=main_url,headers=headers)
print(res2.text)
#得到的是一串js代码
显示要跳转到登陆的页面,说明登陆失败
会话处理2 .py
import requests
# requests不能直接保存cookie,需要借助于requests的扩展对象Session
s = requests.Session() # 创建一个Session对象
login_url = 'http://www.jokeji.cn/user/c.asp'
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
}
# 请求体
params = {
'u':'bobo666',
'p':'a12345678',
'sn':'1',
't':'big',
}
# 发起get请求以登陆
# res = requests.get(url=login_url,headers=headers,params=params)
res = s.get(url=login_url,headers=headers,params=params)
# 用Session对象发起get请求去登录,此时如果登录成功则Session对象中就会保存本次登录的cookie信息
print(res.text)
#显示true 登陆成功
print(res.cookies)
# 接下来访问主页
main_url = 'http://www.jokeji.cn/User/MemberCenter.asp'
# res2 = requests.get(url=main_url,headers=headers)
res2 = s.get(url=main_url,headers=headers)
# 用携带cookie信息的Session对象来发起请求
print(res2.text)
显示跳转到了登陆后的页面,说明登陆成功