1

我正在处理 HTTPS,我想获取 live.com 的 HTTP 标头

import urllib2

try:
    email="HelloWorld1234560@hotmail.com"
    response = urllib2.urlopen("https://signup.live.com/checkavail.aspx?chkavail="+email+"&tk=1258056184535&ru=http%3a%2f%2fmail.live.com%2f%3frru%3dinbox&wa=wsignin1.0&rpsnv=11&ct=1258055283&rver=6.0.5285.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1036&id=64855&bk=1258055288&rollrs=12&lic=1")
    print 'response headers: "%s"' % response.info()
except IOError, e:
    if hasattr(e, 'code'): # HTTPError
        print 'http error code: ', e.code
    elif hasattr(e, 'reason'): # URLError
        print "can't connect, reason: ", e.reason
    else:
        raise

所以我不想要标题中的所有信息我只想要Set-Cookie信息

如果你问脚本是做什么的:它是通过从这个viralbe获取数量来检查电子邮件是否可以在hotmail中使用CheckAvail=

编辑后

感谢您的帮助..修复get only后Set-Cookie我遇到了问题,当我得到cookie时我没有得到CheckAvil=很多信息,没有`CheckAvil =在浏览器中打开它并打开源代码后我得到了它!看图片在此处输入图像描述

4

2 回答 2

5

返回的对象是(如docsresponse.info()所述)的一个实例,它是 的子类,它有一个方法。mimetools.Messageurllib2rfc822.Messagegetheader()

因此,您可以执行以下操作:

response = urllib2.urlopen("...")
print response.info().getheader("Set-Cookie") # get the value of the Set-Cookie header

但是,如果您正在检查邮件,我建议您使用 POP3 或 IMAP(如果可用)(Python 附带了两者的模块)。

于 2011-06-21T18:00:17.057 回答
0

这是因为你的http响应中有'Httponly',这意味着,由于规范,只有http连接可以查看。

于 2014-05-16T06:22:28.640 回答