电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python中的Cookie模塊如何使用

瀏覽:116日期:2022-07-22 17:56:51

Cookie 模塊,顧名思義,就是用來操作Cookie的模塊。

Cookie這塊小蛋糕,玩過Web的人都知道,它是Server與Client保持會話時用到的信息 切片。 Http協議本身是無狀態的,也就是說,同一個客戶端發送的兩次請求,對于Web服務器來說,沒有直接的關系。既然這樣,有人會問,既然Http是無狀態 的, 為什么有些網頁,只有輸入了用戶名與密碼通過驗證之后才可以訪問?

那是因為:對于通過身份驗證的用戶,Server會偷偷的在發往Client的數據中添 加 Cookie,Cookie中一般保存一個標識該Client的唯一的ID,Client在接下來對服務器的請求中,會將該ID以Cookie的形式一并 發往Server,Server從回傳回來的Cookie中提取ID并與相應的用戶綁定起來,從而實現身份驗證。說白了,Cookie就是一個在服務器與客戶端之間相互傳遞的字符串(下圖通過FireFox的FireBug插件查看訪問google.com時的Cookie)。

Cooke模塊中定義了4個直接操作Cookie的類:BaseCookie、SimpleCookie、SerialCookie、 SmartCookie。其中,BaseCookie是基類,定義了操作Cookie的公共部分,其他3個類都繼承自BaseCookie,它們之間的區 別僅僅在于序列化數據的方式不同。下面簡單講解這些類的使用。

BaseCookie基類: BaseCookies的行為非常像dict,可以用鍵/值對的形式來操作它,但是kye必須是字符串,value是Morsel對象 (下面會講到Morsel)。BaseCookies定義了編碼/解碼,輸入/輸出操作的公共規范:

BaseCookie.value_encode(val):對數據進行序列化/反序列化。這些方法都返回字符串,以便通過Http傳輸。 BaseCookie.output():返回字符串,該字符串可以作為Http響應頭發往客戶端。 BaseCookie.js_output():返回嵌入js腳本的字符串,瀏覽器通過執行該腳本,就可以得到cooke數據。 BaseCookie.load(newdata):解析字符串為Cookie數據。

SimpleCookie、SerialCookie、SmartCookie都繼承自BaseCookie,具有一致的行為,它們各自對 BaseCookie的value_decode, value_encode進行了重寫并實現自己的序列化/反序列化策略,其中:

SimpleCookie內部使用str()來對數據進行序列化;

SerialCookie則通過pickle模塊來序列化反序列化數據;

SmartCookie相對聰明點,對于非字符串數據,使用pickle序列/反序列化,否則將字符串原樣返回。

下面的例子簡單的說明如何使用Cookie模塊:

import Cookiec = Cookie.SimpleCookie()c[’name’] = ’DarkBull’c[’address’] = ’ChinaHangZhou’c[’address’][’path’] = ’/’# 路徑c[’address’][’domain’] = ’appspot.com’# domainc[’address’][’expires’] = ’Fir, 01-Oct-2010 20:00:00 GMT’ # 過期時間print c.output()print c.js_output()# 輸出結果,與上圖對照# Set-Cookie: address=ChinaHangZhou; Domain=appspot.com; expires=Fir, 01-Oct-2010 20:00:00 GMT; Path=/# Set-Cookie: name=DarkBull# 作為腳本輸出# <script type='text/javascript'># document.cookie = 'address=ChinaHangZhou; Domain=appspot.com; expires=Fir, 01-Oct-2010 20:00:00 GMT; Path=/';# </script># <script type='text/javascript'># document.cookie = 'name=DarkBull';# </script>

Morsel類 : 用于表示Cookie中每一項數據的屬性而抽象的類。這些屬性包括:expires, path, comment, domain, max-age, secure, version等等(看上圖下劃線標注部分)。如果你玩過web,對這些應該不會陌生,可以在RCF2109中找到他們的具體定義

Morsel.key,Morsel.value:Cookie數據項的key/value(value可以是二進制數據);

Morsel.coded_value:數據編碼后得到的字符串。Http協議是基于文本的協議,Server無法直接向Client發送二進制數據,只有序列化成字符串后,才能發往Client;

Morsel.set(key, value, coded_value):設置Cookie數據項的key、value、coded_value;

Morsel.isReversvedKey(key):如果key是expires, path, comment, domain, max-age, secure, version, httponly中的一個,返回True,否則返回False;

Morsel.output():返回型如“Set-Cookie: …”的字符串,表示一個Cookie數據項;

Morsel.js_output():返回Cookie數據項的腳本字符串;

Morsel.OutputString(): 返回Morsel的字符串表示;

Morsel使用示例:

import Cookiem = Cookie.Morsel()m.set(’name’, ’DarkBull’, ’DarkBull’)m[’expires’] = ’Fir, 01-Oct-2010 20:00:00 GMT’m[’domain’] = ’appspot.com’print m.output()# 結果# Set-Cookie: name=DarkBull; Domain=appspot.com; expires=Fir, 01-Oct-2010 20:00:00

知識點擴展:

為什么要使用Cookie呢?

Cookie,指某些網站為了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數據(通常經過加密)

比如說有些網站需要登錄后才能訪問某個頁面,在登錄之前,你想抓取某個頁面內容是不允許的。那么我們可以利用Urllib2庫保存我們登錄的Cookie,然后再抓取其他頁面就達到目的了。

以上就是Python中的Cookie模塊如何使用的詳細內容,更多關于Python中的Cookie模塊用法的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 | 升降炉_真空气氛炉_管式电阻炉厂家-山东中辰电炉有限公司 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | QQ房产导航-免费收录优秀房地产网站_房地产信息网 | 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | ALC墙板_ALC轻质隔墙板_隔音防火墙板_轻质隔墙材料-湖北博悦佳 | 小港信息港-鹤壁信息港 鹤壁老百姓便民生活信息网站 | 非甲烷总烃分析仪|环控百科| 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 丹佛斯压力传感器,WISE温度传感器,WISE压力开关,丹佛斯温度开关-上海力笙工业设备有限公司 | 塑料熔指仪-塑料熔融指数仪-熔体流动速率试验机-广东宏拓仪器科技有限公司 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 浙江筋膜枪-按摩仪厂家-制造商-肩颈按摩仪哪家好-温州市合喜电子科技有限公司 | 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 工作服定制,工作服定做,工作服厂家-卡珀职业服装(苏州)有限公司 | 淄博不锈钢,淄博不锈钢管,淄博不锈钢板-山东振远合金科技有限公司 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 广州/东莞小字符喷码机-热转印打码机-喷码机厂家-广州瑞润科技 | 陕西鹏展科技有限公司| 股指期货-期货开户-交易手续费佣金加1分-保证金低-期货公司排名靠前-万利信息开户 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | 咖啡加盟,咖啡店加盟连锁品牌-卡小逗 | 苏州防水公司_厂房屋面外墙防水_地下室卫生间防水堵漏-苏州伊诺尔防水工程有限公司 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 钢衬四氟管道_钢衬四氟直管_聚四氟乙烯衬里管件_聚四氟乙烯衬里管道-沧州汇霖管道科技有限公司 | 成都思迪机电技术研究所-四川成都思迪编码器 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 |