如何使用python将cookie保存在文件中?

时间:2012-07-01 13:07:12

标签: python

我有两种方法

  def save_cookie(): 
      cookie = cookielib.MozillaCookieJar('cookie.txt') 
      opener = urllib2.build_opener(HTTPCookieProcessor(cookie)) 
      req = urllib2.Request(url=targeturl,headers=targetheaders) 
      opener.open(req) 
      cookie.save(ignore_discard=True,ignore_expires=True) 

  def get_cookie(): 
      cookie = cookielib.MozillaCookieJar() 
      print cookie.load(filename='cookie.txt').name

第一种方法是将cookie保存在响应文件中。 我想使用第二种方法从文件中获取cookie, 但 cookie.load(filename ='cookie.txt')的类型为None 所以......

2 个答案:

答案 0 :(得分:0)

致电cookie.load()后,迭代cookie对象,依次获取每个Cookie:

for acookie in cookie:
    print acookie.name, acookie.value

对评论#1的回应:

  

cookie的类型是None!所以它什么都不打印。好像就是这样   文件未加载成功。

cookie.load()不会返回任何值。它要么成功,要么抛出异常。因此,您不能以原始程序尝试使用它的方式使用它,如下所示:

    print cookie.load(filename='cookie.txt').name

将该行更改为:

    cookie.load(filename='cookie.txt')

然后执行:

    for acookie in cookie:
        print acookie

如果仍然没有显示任何Cookie,请查看 cookie.txt 文件的内容。如果它不包含任何cookie数据,则问题出在程序试图收集cookie的部分,而不是试图显示它们的部分。 (您确定此网址的回复包含Cookie吗?)

如果 cookie.txt 文件包含Cookie,请更新您的问题以显示该文件的内容以及get_cookie()功能的最新来源。

答案 1 :(得分:0)

print cookie.load(filename =' cookie.txt')

function - load()的值为none。 我认为你应该这样做:

cookie.load(' cookie.txt&#39)

print cookie.name