python自动处理文档_【整理】Python中Cookie的处理:自动处理Cookie,保存为Cookie文件,从文件载入Cookie...

Python中的Cookie相关的库

Python中有自带的模块:cookielib

可以处理cookie相关的很多事情。

包括自动处理cookie:cookie数据是保存在内存中

自动处理cookie:支持Cookie数据存放到文件中其中有两种格式:LWP

Mozilla

进一步,再支持:将cookie存到文件里面

从文件中载入cookie

更多详细格式和解释,请直接看下面的代码。

Python中自动处理Cookie,将Cookie保存到文件,从文件中读取Cookie

Python代码:#!/usr/bin/python

# -*- coding: utf-8 -*-

"""

Function: 【整理】Python中Cookie的处理:自动处理Cookie,保存为Cookie文件,从文件载入Cookie

https://www.crifan.com/python_auto_handle_cookie_and_save_to_from_cookie_file

Version: 2013-01-15

Author: Crifan

Contact: admin (at) crifan.com

"""

import os;

import cookielib;

import urllib2;

def pythonAutoHandleCookie():

"""

Demo how to auto handle cookie in Python

cookies in memory

cookies in file:

save cookie to file

LWP format

Mozilla format

load cookie from file

"""

print "1. Demo how to auto handle cookie (in memory)";

cookieJarInMemory = cookielib.CookieJar();

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJarInMemory));

urllib2.install_opener(opener);

print "after init, cookieJarInMemory=",cookieJarInMemory; #after init, cookieJarInMemory=

#!!! following urllib2 will auto handle cookies

demoUrl = "http://www.google.com/";

response = urllib2.urlopen(demoUrl);

#here, we already got response cookies

print "after urllib2.urlopen, cookieJarInMemory=",cookieJarInMemory;

#after urllib2.urlopen, cookieJarInMemory= , , ]>

print "2. Demo how to auto handle cookie in file, LWP format";

cookieFilenameLWP = "localCookiesLWP.txt";

cookieJarFileLWP = cookielib.LWPCookieJar(cookieFilenameLWP);

#will create (and save to) new cookie file

cookieJarFileLWP.save();

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJarFileLWP));

urllib2.install_opener(opener);

#!!! following urllib2 will auto handle cookies

demoUrl = "http://www.google.com/";

response = urllib2.urlopen(demoUrl);

#update cookies, save cookies into file

cookieJarFileLWP.save();

#for demo, print cookies in file

print "LWP cookies:";

print open(cookieFilenameLWP).read(os.path.getsize(cookieFilenameLWP));

# #LWP-Cookies-2.0

# Set-Cookie3: PREF="ID=34c1415b570a93ae:FF=0:NW=1:TM=1358236121:LM=1358236121:S=gEVVojW4x37ht5n-"; path="/"; domain=".google.com"; path_spec; domain_dot; expires="2015-01-15 07:48:41Z"; version=0

# Set-Cookie3: NID="67=JI_uEwUm5GDrQ_vCwAp2z_YGU7MdLm5CLMa4CNLF7RQuTDMzrrk1EjRddGcnpoFbht81LaV9spxZQQInf0mPS6lDrvcRqBBL5NOTmy8SwOzA6HWC3iTIo4-o3fO1Udkv"; path="/"; domain=".google.com.hk"; path_spec; domain_dot; expires="2013-07-17 07:48:41Z"; HttpOnly=None; version=0

# Set-Cookie3: PREF="ID=8f7e4efca89bdb1b:U=f85a4afa4db021aa:FF=2:LD=zh-CN:NW=1:TM=1358236121:LM=1358236121:S=2WR59hDWutdnUJtF"; path="/"; domain=".google.com.hk"; path_spec; domain_dot; expires="2015-01-15 07:48:41Z"; version=0

print "3. Demo how to auto handle cookie in file, Mozilla Format";

cookieFilenameMozilla = "localCookiesMozilla.txt";

cookieJarFileMozilla = cookielib.MozillaCookieJar(cookieFilenameMozilla);

#will create (and save to) new cookie file

cookieJarFileMozilla.save();

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJarFileMozilla));

urllib2.install_opener(opener);

#!!! following urllib2 will auto handle cookies

demoUrl = "http://www.google.com/";

response = urllib2.urlopen(demoUrl);

#update cookies, save cookies into file

cookieJarFileMozilla.save();

#for demo, print cookies in file

print "Mozilla cookies:";

print open(cookieFilenameMozilla).read(os.path.getsize(cookieFilenameMozilla));

# # Netscape HTTP Cookie File

# # http://www.netscape.com/newsref/std/cookie_spec.html

# # This is a generated file! Do not edit.

# .google.comTRUE/FALSE1421308121PREFID=0e05040dd979207c:FF=0:NW=1:TM=1358236121:LM=1358236121:S=jcFid2XgXMIhPUPl

# .google.com.hkTRUE/FALSE1374047321NID67=klMI_Z5ZPWDjUYrWSUHIE_kYI77_ziJaL0kWRoUGThagME86LKY7H-MNa2wAMI_GklIwYcD8t82qPinxzLd4GLDbmWT0OVLCXhRj0wQDC57dTNAsTs4lhVR7Yjvj2tfn

# .google.com.hkTRUE/FALSE1421308121PREFID=028f8b736db06a9a:U=6ba6d080847c8de6:FF=2:LD=zh-CN:NW=1:TM=1358236121:LM=1358236121:S=_1BcC5v3G0ZojVz8

print "4. read cookies from file";

parseAndSavedCookieFile = "parsedAndSavedCookies.txt"

parsedCookieJarFile = cookielib.MozillaCookieJar(parseAndSavedCookieFile);

#parsedCookieJarFile = cookielib.MozillaCookieJar(cookieFilenameMozilla);

print parsedCookieJarFile; #<_MozillaCookieJar.MozillaCookieJar[]>

parsedCookieJarFile.load(cookieFilenameMozilla);

print parsedCookieJarFile; #<_MozillaCookieJar.MozillaCookieJar[, , ]>

if __name__=="__main__":

pythonAutoHandleCookie();

总结

Python中的cookie的自动处理,比C#好多了。

至少有已有的库可供使用。虽然用法上,需要稍微多多了解后,才知道如何使用的。

更多的解释,可参考官方手册:

比如其中的revert等函数,需要用到的时候,应该会觉得蛮好用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值