программно войти в Yahoo / MSN (Hotmail), используя код Python Django и получить список контактов? - PullRequest
0 голосов
/ 11 октября 2010

Есть ли способ программно войти в Yahoo !, предоставив в качестве входных данных идентификатор электронной почты и пароль, и получить контакты пользователя?

Я достиг того же самого с Gmail, используя BeautifulSoup.py

API адресной книги Yahoo предоставляет 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 голосов
/ 12 октября 2010

Вы можете написать один или просто использовать Pinax . Pinax - это набор инструментов, созданных на основе Django. У них есть приложение, которое импортирует контакт imfo (из vCard, Google или Yahoo).

Я предлагаю вам использовать это, так как вам не нужно поддерживать его, плюс, чтобы избежать повторного изобретения цикла.

0 голосов
/ 12 октября 2010

Я решил эту проблему с помощью 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 

Это действительно работает для меня:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...