كيفية تسجيل الدخول التلقائي إلى تغذية ذرة Gmail مع Python؟
سؤال
Gmail لديه هذا الشيء الجميل يحدث للحصول على تغذية ذرة:
def gmail_url(user, pwd):
return "https://"+str(user)+":"+str(pwd)+"@gmail.google.com/gmail/feed/atom"
الآن عندما تقوم بذلك في متصفح ، فإنه يدققك وإعادة توجيهك. لكن في بيثون ، على الأقل ما أحاول ، لا يعمل بشكل صحيح.
url = gmail_url(settings.USER, settings.PASS)
print url
opener = urllib.FancyURLopener()
f = opener.open(url)
print f.read()
بدلاً من إعادة التوجيه بشكل صحيح ، يقوم بذلك:
>>>
https://user:pass@gmail.google.com/gmail/feed/atom
Enter username for New mail feed at mail.google.com:
هذا سيء! لا يجب أن أكتب في اسم المستخدم وكلمة المرور مرة أخرى !! كيف يمكنني أن أجعلها مجرد فائدة تلقائية في Python كما هو الحال في متصفح الويب الخاص بي ، حتى أتمكن من الحصول على محتويات التغذية بدون كل BS؟
المحلول
يمكنك استخدام httpbasicauthhandler ، جربت ما يلي وعملت:
import urllib2
def get_unread_msgs(user, passwd):
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(
realm='New mail feed',
uri='https://mail.google.com',
user='%s@gmail.com' % user,
passwd=passwd
)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
feed = urllib2.urlopen('https://mail.google.com/mail/feed/atom')
return feed.read()
لا تنتمي إلى StackOverflow