zoukankan      html  css  js  c++  java
  • 【转】cookielib模块

    cookielib模块

          cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源。例如可以利用本模块 的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送。coiokielib模块用到的对象主要有下面几个:CookieJar、 FileCookieJar、MozillaCookieJar、LWPCookieJar。其中他们的关系如下:

                            CookieJar                       

                                /    

                FileCookieJar      

                 /                       

     MozillaCookieJar      LWPCookieJar            

    1、CookieJar ()

          管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失。

          The CookieJar class stores HTTP cookies. It extracts cookies from HTTP requests, and returns them in HTTP responses.CookieJar instances automatically expire contained cookies when necessary. Subclasses are also responsible for storing and retrieving cookies from a file or database.

    2、FileCookieJar (filename,delayload=None,policy=None)

           创建FileCookieJar实例,检索cookie信息并将cookie存储到文件中。filename是存储cookie的文件名。delayload为True时支持延迟访问访问文件,即只有在需要时才读取文件或在文件中存储数据。

          A CookieJar which can load cookies from, and perhaps save cookies to, a file on disk. Cookies are NOT loaded from the named file until either the load() or revert() method is called.

    3、MozillaCookieJar (filename,delayload=None,policy=None)

          创建与Mozilla浏览器cookies.txt兼容的FileCookieJar实例。

           A FileCookieJar that can load from and save cookies to disk in the Mozilla  cookies.txt  file format (which is also used by the Lynx and Netscape browsers).Also note that cookies saved while Mozilla is running will get clobbered by Mozilla.

    4、LWPCookieJar (filename,delayload=None,policy=None)

          创建与libwww-perl的Set-Cookie3文件格式兼容的FileCookieJar实例。

          A FileCookieJar that can load from and save cookies to disk in format compatible with the libwww-perl library’s Set-Cookie3file format. This is convenient if you want to store cookies in a human-readable file.

      

         除了上面几个函数之外,下面几个函数也很重要:

    FileCookieJar. save ( filename=None ,   ignore_discard=False ,   ignore_expires=False )

    Save cookies to a file.This base class raises NotImplementedError. Subclasses may leave this method unimplemented.filename is the name of file in which to save cookies. If filename is not specified, self.filename is used (whose default is the value passed to the constructor, if any); if self.filename is NoneValueError is raised. ignore_discard: save even cookies set to be discarded. ignore_expires: save even cookies that have expiredThe file is overwritten if it already exists, thus wiping all the cookies it contains. Saved cookies can be restored later using the load() or revert() methods.

    FileCookieJar. load ( filename=None ,   ignore_discard=False ,   ignore_expires=False )

    Load cookies from a file.Old cookies are kept unless overwritten by newly loaded ones.Arguments are as for save().The named file must be in the format understood by the class, or LoadError will be raised. Also, IOError may be raised, for example if the file does not exist.

    FileCookieJar. revert ( filename=None ,   ignore_discard=False ,   ignore_expires=False )

    Clear all cookies and reload cookies from a saved file. revert() can raise the same exceptions as load(). If there is a failure, the object’s state will not be altered.

    cookielib模块一般与urllib2模块配合使用,主要用在urllib2.build_oper()函数中作为urllib2.HTTPCookieProcessor()的参数。使用方法如下面登录人人网的代码:

    复制代码
    #! /usr/bin/env python
    #coding=utf-8
    import urllib2
    import urllib
    import cookielib
    data={"email":"用户名","password":"密码"}  #登陆用户名和密码
    post_data=urllib.urlencode(data)
    cj=cookielib.CookieJar()
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
    headers ={"User-agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}
    req=urllib2.Request("http://www.renren.com/PLogin.do",post_data,headers)
    content=opener.open(req)
    print content2.read().decode("utf-8").encode("gbk")

    来源:http://www.cnblogs.com/mmix2009/p/3226775.html

  • 相关阅读:
    javascript 的继承
    js Cookie的操作
    不要再拖别人的控件1.输出几个小东西
    POJ2586Y2K Accounting Bug
    POJ3239Solution to the n Queens Puzzle
    POJ2109Power of Cryptography
    POJ1753Flip Game
    POJ2965The Pilots Brothers' refrigerator
    POJ1328Radar Installation
    POJ2255Tree Recovery
  • 原文地址:https://www.cnblogs.com/themost/p/6841666.html
Copyright © 2011-2022 走看看