有没有办法以编程方式登录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')忽略
答案 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,谷歌或雅虎)。
我建议您使用它,因为您不必维护它,以避免重新发生循环。