0

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

我使用 BeautifulSoup.py 用 Gmail 实现了同样的目标

Yahoo Address book API 提供 BBAuth,需要将用户重定向到 Yahoo 登录页面。但我正在寻找一种无需重定向即可通过 Yahoo 对用户进行身份验证的方法。我试过这个: http: //pypi.python.org/pypi/ContactGrabber/0.1

但我收到此错误:

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

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

无效的用户 ID/密码

Exception WindowsError: (2, 'The system cannot find the file specified', 'C:\DOCUME~1\sjain\LOCALS~1\Temp\2') in >被忽略

4

2 回答 2

0

您可以编写一个或只使用Pinax。Pinax 是构建在 Django 之上的一系列工具。他们有一个应用程序可以导入联系人 imfo(来自 vCard、Google 或 Yahoo)。

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

于 2010-10-12T13:57:43.650 回答
0

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

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

def import_yahoo_contacts(登录名,密码):

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 

这真的对我有用:)

于 2010-10-12T13:52:24.863 回答