首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python,扭曲并使用cookielib向getPage添加cookie

Python,扭曲并使用cookielib向getPage添加cookie
EN

Stack Overflow用户
提问于 2011-10-04 19:36:33
回答 1查看 949关注 0票数 2

下面是我的代码,用于添加cookie以使用getPage获取页面。这也是我得到的错误信息。如何添加cookie?如果cookie为None,则代码正常工作。

代码语言:javascript
复制
 cj = cookielib.CookieJar()
 client.getPage(iUrl,headers,method='GET',cookies=cj).addCallback(self.processPage,iUrl).addErrback(self.printError,iUrl)




Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 84, in callWithLogger
return callWithContext({"system": lp}, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 69, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 59, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 37, in callWithContext
return func(*args,**kw)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/internet/selectreactor.py", line 146, in        _doReadOrWrite
why = getattr(selectable, method)()
File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 664, in doConnect
self._connectDone()
File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 671, in _connectDone
self.protocol.makeConnection(self)
File "/usr/lib/python2.7/dist-packages/twisted/internet/protocol.py", line 459, in makeConnection
self.connectionMade()
File "/usr/lib/python2.7/dist-packages/twisted/web/client.py", line 61, in connectionMade
   for cookie, cookval in self.factory.cookies.items():
exceptions.AttributeError: CookieJar instance has no attribute 'items'
*--- Failure #133 ---
Failure: exceptions.AttributeError: CookieJar instance has no attribute 'items'
*--- End of Failure #133 -
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-04 19:59:00

看起来您在cookie参数中传递了一个cookiejar。我找不到这种工作的参考资料。

我试着传递一个简单的dict,它起作用了。下面是完整的代码:

代码语言:javascript
复制
from twisted.web import client
import pprint

def processPage (page, url):
    print len(page), 'bytes received'
    print 'cookies: ', pprint.pformat(cj)

def printError(error, url):
    print 'ERROR: ', error.getErrorMessage()

def end(ignore):
    reactor.stop()

iUrl = 'http://twistedmatrix.com'

headers = []

cj = {}
client.getPage(iUrl,headers,method='GET',cookies=cj).addCallback(processPage,iUrl).addErrback(printError,iUrl).addBoth(end)


from twisted.internet import reactor
reactor.run()

下面是输出:

代码语言:javascript
复制
10660 bytes received
cookies: 
{'trac_form_token': '940bfe8055b63872303017ba',
 'trac_session': '5a3500ec1bc8efad40974a31'}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7647258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档