以编程方式使用python Django代码登录Yahoo / MSN(Hotmail)并获取联系人列表?

时间:2010-10-11 09:21:16

标签: django msn yahoo-mail

有没有办法以编程方式登录Yahoo!,提供电子邮件ID和密码作为输入,并获取用户的联系人?

我使用BeautifulSoup.py

在Gmail上实现了同样的目标

Yahoo地址簿API提供BBAuth,它要求用户被重定向到Yahoo登录页面。但我正在寻找一种方法来在没有重定向的情况下使用Yahoo对用户进行身份验证。 我试过这个: http://pypi.python.org/pypi/ContactGrabber/0.1

但我收到此错误:

  

警告(来自警告模块):文件   “C:\ Python26 \ lib中\站点包\ contactgrabber-0.1-py2.6.egg \ contactgrabber \ base.py”,   第31行

     

RuntimeWarning:tempnam是您程序的潜在安全风险

     

无效的用户名/密码

     

异常WindowsError:(2,'系统无法找到该文件   在>中指定','C:\ DOCUME~1 \ sjain \ LOCALS~1 \ Temp \ 2')忽略

2 个答案:

答案 0 :(得分:0)

我通过使用Urllib解决了这个问题,这里是代码:

LoginUrl =“https://login.yahoo.com/config/login?” ExportUrl =“http://address.yahoo.com/”

def import_yahoo_contacts(login,passwd):

try :
    form_data = {'login' : login, 'passwd' : passwd}
    jar = cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
    form_data = urllib.urlencode(form_data)
    resp = opener.open(LoginUrl, form_data)
    resp = opener.open(ExportUrl)
    page = resp.read()

    index = page.find('InitialContacts')
    startjson = page.index('[',index)
    endjson = page.index(']',index)
    Jsondata = page[startjson:endjson+1]

    user_contacts = []
    data =json.JSONDecoder().decode(Jsondata)
    for r in data:
        userfriends = []
        userfriends.append(r.get('contactName'))
        userfriends.append(r.get('email'))
        user_contacts.append(userfriends)

except:
    return []
return user_contacts 

这真的对我有用:)

答案 1 :(得分:0)

你可以写一个或只使用 Pinax 。 Pinax是一个建立在Django之上的工具集合。他们有一个应用程序导入联系人imfo(来自vCard,谷歌或雅虎)。

我建议您使用它,因为您不必维护它,以避免重新发生循环。