English 中文(简体)
瓦尔达·库西·贾尔(签名)
原标题:Python FileCookieJar.save() issue

在试图用<条码”为档案节省 co具时,我有问题。 文件CookieJar ssave方法。 我的守则是:

#!/usr/bin/python
import httplib, cookielib, urllib2, json, time
from datetime import date


class FoN:
    def __init__(self):
            self.cookiefile = "cookies.txt"
            self.cj = cookielib.FileCookieJar(self.cookiefile)
    def login (self, login, password):
            js = json.JSONEncoder().encode({"login":login,"password":password})
            req=urllib2.Request("http://www.example.com/user/login", js)
            res=urllib2.urlopen(req)
            self.cj.extract_cookies(res,req)
            self.cj.save(self.cookiefile, ignore_discard=True)
            f.write ("Login: "+login+", result: "+str(res.read().count("true"))+"
")
            time.sleep(2)
            return res

因此,它未能在<条码>本身.cj.save(自称,cookiefile)上填写,忽视了_discard=True)的<> NotImplementedError则根据文件列出的例外。 但是,我问,我如何拯救档案库? 我甚至试图将守则列入try。 但该条款根本无助于。

最佳回答

页: 1 为节约起见,您应使用<代码>MozillaCookieJar或LWPCookieJar等子类。

问题回答

我已写出mo样本。

  • auto handle cookies: cookie in memory
  • auto handle cookies: cookie in file
    • support two format:
      • LWP
      • Mozilla
    • two kind of operation
      • save into file
      • load from file

法典:



    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    """
    Function:   【整理】Python中Cookie的处理:自动处理Cookie,保存为Cookie文件,从文件载入Cookie
                http://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.com   TRUE    /   FALSE   1421308121  PREF    ID=0e05040dd979207c:FF=0:NW=1:TM=1358236121:LM=1358236121:S=jcFid2XgXMIhPUPl
        # .google.com.hk    TRUE    /   FALSE   1374047321  NID 67=klMI_Z5ZPWDjUYrWSUHIE_kYI77_ziJaL0kWRoUGThagME86LKY7H-MNa2wAMI_GklIwYcD8t82qPinxzLd4GLDbmWT0OVLCXhRj0wQDC57dTNAsTs4lhVR7Yjvj2tfn
        # .google.com.hk    TRUE    /   FALSE   1421308121  PREF    ID=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; #
        parsedCookieJarFile.load(cookieFilenameMozilla);
        print parsedCookieJarFile; #, , ]>


    if __name__=="__main__":
        pythonAutoHandleCookie();





相关问题
Can Django models use MySQL functions?

Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...

An enterprise scheduler for python (like quartz)

I am looking for an enterprise tasks scheduler for python, like quartz is for Java. Requirements: Persistent: if the process restarts or the machine restarts, then all the jobs must stay there and ...

How to remove unique, then duplicate dictionaries in a list?

Given the following list that contains some duplicate and some unique dictionaries, what is the best method to remove unique dictionaries first, then reduce the duplicate dictionaries to single ...

What is suggested seed value to use with random.seed()?

Simple enough question: I m using python random module to generate random integers. I want to know what is the suggested value to use with the random.seed() function? Currently I am letting this ...

How can I make the PyDev editor selectively ignore errors?

I m using PyDev under Eclipse to write some Jython code. I ve got numerous instances where I need to do something like this: import com.work.project.component.client.Interface.ISubInterface as ...

How do I profile `paster serve` s startup time?

Python s paster serve app.ini is taking longer than I would like to be ready for the first request. I know how to profile requests with middleware, but how do I profile the initialization time? I ...

Pragmatically adding give-aways/freebies to an online store

Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...

Converting Dictionary to List? [duplicate]

I m trying to convert a Python dictionary into a Python list, in order to perform some calculations. #My dictionary dict = {} dict[ Capital ]="London" dict[ Food ]="Fish&Chips" dict[ 2012 ]="...

热门标签