""" Get Top 10 Downloads @ Microsoft.com To create a mstoken.py: 1) Get a developer's token from http://msdn.microsoft.com/webservices/building/livewebservices/mscomservices/default.aspx 2) Format mstoken.py thus: token = '2346iusdflkjah9873562' pin = 'aksjdhfliaugw34' """ import random, binascii from urllib2 import * from time import * import mstoken endpoint='http://ws.microsoft.com/mscomservice/mscom.asmx' nonce = sha.new(str(random.random())).digest() created = strftime('%Y-%m-%dT%H:%M:%SZ',gmtime(time())) digest = sha.new(nonce + created + mstoken.pin).digest() security = { 'PasswordDigest': binascii.b2a_base64(digest), 'Username': mstoken.token, 'Nonce': binascii.b2a_base64(nonce), 'Created': created, 'Expires': strftime('%Y-%m-%dT%H:%M:%SZ',gmtime(time()+180)) } data=""" %(Username)s %(PasswordDigest)s %(Nonce)s %(Created)s %(Expires)s Popular 10 en-US """ % security request = Request(endpoint, data) request.add_header("Content-type", "text/xml") request.add_header("SOAPAction", '"http://www.microsoft.com/GetTopDownloads"') try: print urlopen(request).read() except HTTPError,e: print e.read()