Hotmail, MSN and live.com contacts grabber
Currently most of the contacts grabbers (such as Plaxo widget, Open Inviter etc.) do not support or have broken support for Hotmail, live.com or MSN. Hotmail has over 270 million users worldwide so it's a pretty important service to support.
In hope to spark some interest in improving python contacts grabbers I share my hack to grab contacts from Hotmail, MSN and live.com: import urllib
import urllib2
import re
def get_live_contacts(email, password):
for i in xrange(0, 3):
try:
return _get_live_contacts(email, password)
except urllib2.URLError:
pass
raise Exception('Invalid login')
#--- Private ----------------------------------------------
RE_EMAILS = re.compile('\(([^\s]+@[^\s]+)\)')
LOGIN_HOST = 'https://mid.live.com/si/'
CONTACTS_URL = 'http://mobile.live.com/hm/contacts.aspx?bf=0&ts=1&c=to'
LOGIN_ASPX = 'login.aspx?lc=1033&id=71570&'\
'ru=http%3a%2f%2fmobile.live.com%2fwml%2'\
'fmigrate.aspx%3freturl%3dhttp%253a%252f%252f'\
'mobile.live.com%252fhm%252ffolder.aspx%'\
'253fmkt%253den-US%26fti%3dy&mlc=en-US&ms'\
'psty=302&mspto=1&tw=14400&kv=2'
def _get_live_contacts(email, password):
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
login_form_seq = urllib.urlencode([
('__ET', ''),
('LoginTextBox', email),
('PasswordTextBox', password),
('SavePasswordCheckBox', '0'),
('PasswordSubmit', 'Sign in')
])
html = opener.open('%s/%s' % (LOGIN_HOST, LOGIN_ASPX), login_form_seq).read()
if 'LoginTextBox' in html:
raise Exception('Invalid login')
html = opener.open(CONTACTS_URL).read()
emails = RE_EMAILS.findall(html)
return emails
|
|