Search code examples
pythonhttpshotmailsetcookie

get HTTPS header in python


i'm dealing with HTTPS and i want to get HTTP header for live.com

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

so i don't want all the information from headers i just want Set-Cookie information

if you asking what is script do : it's for checking if email avilable to use in hotmail by get the amount from this viralbe CheckAvail=

after edit

thanks for help .. after fixing get only Set-Cookie i got problem it's when i get cookie not get CheckAvil= i got a lot information without `CheckAvil= after open it in browser and open the source i got it !! see the picture enter image description here


Solution

  • The object returned by response.info() is an instance of mimetools.Message (as described by the urllib2 docs), which is a subclass of rfc822.Message, which has a getheader() method.

    So you can do the following:

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

    However, if you are checking for mail, I would recommend you to use POP3 or IMAP if available (Python comes with modules for both).