Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。
————————————————
requests请求获取url,cookies,history
import requests,jsonurl = "https://www.360buy.com/"headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36 Edg/96.0.1054.53'}rsp = requests.post(url,headers=headers)print(rsp.url) #获取url,cookies,history,status_code,........
C:\Users\井子扬\AppData\Local\Microsoft\WindowsApps\python.exe D:/学习软件工具/pycharm/pachong/static/lear001.pyhttps://www.jd.com/进程已结束,退出代码0
使用session对象保持回话状态
为了体现会话保持与非会话保持,下面模拟使用普通的requests请求和session请求,
在第一个请求中设置cookie信息请求完毕后再通过发送第二个请求cookie的请求来查看是否能返回第一次发送的cookie
使用requests方法请求:
import requests,json#sess = requests.session()requests.get("http://httpbin.org/cookies/set?sessioncookie=123456")rsp = requests.get("http://httpbin.org/cookies")print(rsp.text)-------------------------------------------------------------------------------------输出效果:输出效果:{"cookies": {}}
session确保了回话的状态
import requests,jsonsess = requests.session()sess.get("http://httpbin.org/cookies/set?sessioncookie=123456")rsp = sess.get("http://httpbin.org/cookies")print(rsp.text)-------------------------------------------------------------------------------------输出效果:输出效果:{"cookies": {"sessioncookie": "123456"}}
设置访问代理
有一些网站会对同一个ip访问次数过多后进行拒绝所有可以设置代理ip进行访问
import requests,jsonproxies= {'http':'http://112.14.47.6:52024'}rsp = requests.get("http://httpbin.org/ip",proxies=proxies)print(rsp.text)-------------------------------------------------------------------------------------输出效果:{"origin": "112.14.47.6" #如果返回是代理ip则代理成功反之不成功}
session案例:
import requestsurl = 'https://passport.17k.com/ck/user/login'headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"}data = {"loginName" : "17538355593","password": "ilovechina123"}s = requests.session() # 创建一个session对象r = s.post(url, data=data) #使用定义好的session对象发送post请求通过登陆链接登录到网站中#print(r.text)book_list = s.get("https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919") #再次使用定义好的session对象发送到已经登录到的界面中的某个链接print(book_list.json())--------------------------------------------------------------------------输出展示:D:\学习软件工具\pycharm\openstack-api\venv\Scripts\python.exe D:/学习软件工具/pycharm/openstack-api/venv/pachong/小说网站.py{'status': {'code': 0, 'msg': 'succ'}, 'data': [{'bookId': 3255432, 'bookName': '男人三十', 'coverImg': 'https://cdn.static.17k.com/book/189x272/32/54/3255432.jpg-189x272?v=1607923792000', 'authorId': 66535482, 'authorPenName': '小白菜', 'introduction': '本是千万富翁,却遭遇破产危机,结婚六年的妻子还送给我一顶大大的绿帽。\n人生低谷,却无意间结识美女总裁。\n为还自己清白,我重振昔日辉煌,不仅要手刃仇人,我还要让那些瞧不起我的人跪下来叫我爸爸。\n人性是
