Python 在urllib2.urlopen中使用mimetools.Message

Python 在urllib2.urlopen中使用mimetools.Message,python,urllib2,Python,Urllib2,我正在使用urllib2.urlopen(): 正如您在响应中收到的标题中所看到的,有两条“set cookie”语句,但是在我收到的resp.info()对象中,它将这两条cookie语句组合在一起,并用“,”分隔(逗号) 用这个分隔符分隔cookie是很麻烦的,因为cookie信息中有逗号,我试图用这个逗号分隔符分隔 有没有一种简单的方法可以使用这个mimetools.message对象单独调用每个cookie字符串?(resp.info()) else->我只需手动解析标题,而不必使用这一

我正在使用
urllib2.urlopen()

正如您在响应中收到的标题中所看到的,有两条“set cookie”语句,但是在我收到的
resp.info()
对象中,它将这两条cookie语句组合在一起,并用“,”分隔(逗号)

用这个分隔符分隔cookie是很麻烦的,因为cookie信息中有逗号,我试图用这个逗号分隔符分隔

有没有一种简单的方法可以使用这个mimetools.message对象单独调用每个cookie字符串?(
resp.info()

else->我只需手动解析标题,而不必使用这一没有多大帮助的mimetools.message/dictionary对象

尝试使用来获取cookie的
列表

>>> msg = resp.info()
>>> msg.getheaders('Set-Cookie')
['PREF=ID=5975a5ee255f0949:FF=0:TM=1305336283:LM=1305336283:S=1vkES6eF4Yxd-_oM; expires=Mon, 13-May-2013 01:24:43 GMT; path=/; domain=.google.com.au', 'NID=46=lQVFZg6yKUsoWT529Hqp5gA8B_CKYd2epPIbANmw_J0UzeMt2BhuMF-gtmGsRhenUTeajKz2zILXd9xWpHWT8ZGvDcmNdkzaGX-L_-sKyY1w4e2l3DKd80JzSkt2Vp-H; expires=Sun, 13-Nov-2011 01:24:43 GMT; path=/; domain=.google.com.au; HttpOnly']
在本例中,您将得到一个由两个
字符串组成的
列表

然后,您可以迭代该
列表
,并获取您喜欢的任何cookie。你的朋友是:

>>> cookies = msg.getheaders('Set-Cookie')
>>> for cookie in cookies:
...     if cookie.startswith('PREF='):
...             print 'Got PREF: ', cookie
...     else:
...             print 'Got another: ', cookie
... 
Got PREF:  PREF=ID=5975a5ee255f0949:FF=0:TM=1305336283:LM=1305336283:S=1vkES6eF4Yxd-_oM; expires=Mon, 13-May-2013 01:24:43 GMT; path=/; domain=.google.com.au
Got another:  NID=46=lQVFZg6yKUsoWT529Hqp5gA8B_CKYd2epPIbANmw_J0UzeMt2BhuMF-gtmGsRhenUTeajKz2zILXd9xWpHWT8ZGvDcmNdkzaGX-L_-sKyY1w4e2l3DKd80JzSkt2Vp-H; expires=Sun, 13-Nov-2011 01:24:43 GMT; path=/; domain=.google.com.au; HttpOnly
新手如何在Python中找到文档
杰出的getheaders()方法正是我想要的!文档在哪里?他已经链接了文档。它来自httplib,因为urllib2返回一个HTTPResponse对象。@MistahX:很乐意帮忙。我已经更新了我的答案,添加了一个指向在线文档的链接,并说明了我是如何找到它的。@MistahX:顺便说一句,“正是我在寻找的!”最好用绿色勾号表示在最有帮助的答案旁边。这就是现在(一旦你做了
帮助(resp.info())
。获取内容类型| main类型|子类型()
>>> cookies = msg.getheaders('Set-Cookie')
>>> for cookie in cookies:
...     if cookie.startswith('PREF='):
...             print 'Got PREF: ', cookie
...     else:
...             print 'Got another: ', cookie
... 
Got PREF:  PREF=ID=5975a5ee255f0949:FF=0:TM=1305336283:LM=1305336283:S=1vkES6eF4Yxd-_oM; expires=Mon, 13-May-2013 01:24:43 GMT; path=/; domain=.google.com.au
Got another:  NID=46=lQVFZg6yKUsoWT529Hqp5gA8B_CKYd2epPIbANmw_J0UzeMt2BhuMF-gtmGsRhenUTeajKz2zILXd9xWpHWT8ZGvDcmNdkzaGX-L_-sKyY1w4e2l3DKd80JzSkt2Vp-H; expires=Sun, 13-Nov-2011 01:24:43 GMT; path=/; domain=.google.com.au; HttpOnly
% python
Python 2.7.1 (r271:86832, Jan 29 2011, 13:30:16) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib2
>>> req = urllib2.Request('http://www.google.com')
>>> resp = urllib2.urlopen(req)
>>> help(resp.info())