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())