0

我有两种方法

  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 所以...

4

2 回答 2

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 的程序部分,而不是尝试显示它们的部分。(您确定来自该 URL 的响应包含 cookie 吗?)

如果cookie.txtget_cookie()文件确实包含 cookie,那么请更新您的问题以显示该文件的内容和您的函数 的最新来源。

于 2012-07-01T17:40:47.337 回答
0

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

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

cookie.load('cookie.txt')

打印 cookie.name

于 2016-08-22T08:17:03.800 回答