Logging in to google using python?

后端 未结 4 531
清酒与你
清酒与你 2020-12-13 11:19

I am fairly new to web programing but for the sake of it, I am trying to login to google account not using standard code but as a python application, but it is impossible to

相关标签:
4条回答
  • 2020-12-13 11:37

    I made a python class that handle google login and the is able to get any google service page that requires the user to be logged in:

    class SessionGoogle:
        def __init__(self, url_login, url_auth, login, pwd):
            self.ses = requests.session()
            login_html = self.ses.get(url_login)
            soup_login = BeautifulSoup(login_html.content).find('form').find_all('input')
            my_dict = {}
            for u in soup_login:
                if u.has_attr('value'):
                    my_dict[u['name']] = u['value']
            # override the inputs without login and pwd:
            my_dict['Email'] = login
            my_dict['Passwd'] = pwd
            self.ses.post(url_auth, data=my_dict)
    
        def get(self, URL):
            return self.ses.get(URL).text
    

    The idea is to go to the login page GALX hidden input value and send it back to google + login and password. It requires modules requests and beautifulSoup

    Example of use:

    url_login = "https://accounts.google.com/ServiceLogin"
    url_auth = "https://accounts.google.com/ServiceLoginAuth"
    session = SessionGoogle(url_login, url_auth, "myGoogleLogin", "myPassword")
    print session.get("http://plus.google.com")
    

    Hope this helps

    0 讨论(0)
  • 2020-12-13 11:43

    Although probably not exactly what you were looking for here I found some code from a similar post that did run from me.

    
    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()

    print get_unread_msgs("put-username-here","put-password-here")

    reference:
    How to auto log into gmail atom feed with Python?

    0 讨论(0)
  • 2020-12-13 11:45

    2020 update for python 3:

    
    def unread_messages(user, passwd):
        auth_handler = urllib.request.HTTPBasicAuthHandler()
        auth_handler.add_password(
            realm='New mail feed',
            uri='https://mail.google.com',
            user='%s@gmail.com' % user,
            passwd=passwd
        )
        opener = urllib.request.build_opener(auth_handler)
        urllib.request.install_opener(opener)
        feed = urllib.request.urlopen('https://mail.google.com/mail/feed/atom')
        return feed.read()
    
    
    print(unread_messages('username','password')
    
    0 讨论(0)
  • 2020-12-13 11:54

    You can use urllib, urllib2 and cookielib libraries of python to login.

    import urllib, urllib2, cookielib
    
    def test_login():
        username = '' # Gmail Address
        password = '' # Gmail Password
        cookie_jar = cookielib.CookieJar() 
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar)) 
        login_dict = urllib.urlencode({'username' : username, 'password' :password}) 
        opener.open('https://accounts.google.com/ServiceLogin', login_dict) 
        response = opener.open('https://plus.google.com/explore')
        print response.read()
    
    if __name__ == '__main__':
        test_login()
    
    0 讨论(0)
提交回复
热议问题