How can I login to a website with Python? How can I login to a website with Python? python python

How can I login to a website with Python?


Maybe you want to use twill. It's quite easy to use and should be able to do what you want.

It will look like the following:

from twill.commands import *go('http://example.org')fv("1", "email-email", "blabla.com")fv("1", "password-clear", "testpass")submit('0')

You can use showforms() to list all forms once you used go… to browse to the site you want to login. Just try it from the python interpreter.


Let me try to make it simple, suppose URL of the site is www.example.com and you need to sign up by filling username and password, so we go to the login page say http://www.example.com/login.php now and view it's source code and search for the action URL it will be in form tag something like

 <form name="loginform" method="post" action="userinfo.php">

now take userinfo.php to make absolute URL which will be 'http://example.com/userinfo.php', now run a simple python script

import requestsurl = 'http://example.com/userinfo.php'values = {'username': 'user',          'password': 'pass'}r = requests.post(url, data=values)print r.content

I Hope that this helps someone somewhere someday.


Typically you'll need cookies to log into a site, which means cookielib, urllib and urllib2. Here's a class which I wrote back when I was playing Facebook web games:

import cookielibimport urllibimport urllib2# set these to whatever your fb account isfb_username = "your@facebook.login"fb_password = "secretpassword"class WebGamePlayer(object):    def __init__(self, login, password):        """ Start up... """        self.login = login        self.password = password        self.cj = cookielib.CookieJar()        self.opener = urllib2.build_opener(            urllib2.HTTPRedirectHandler(),            urllib2.HTTPHandler(debuglevel=0),            urllib2.HTTPSHandler(debuglevel=0),            urllib2.HTTPCookieProcessor(self.cj)        )        self.opener.addheaders = [            ('User-agent', ('Mozilla/4.0 (compatible; MSIE 6.0; '                           'Windows NT 5.2; .NET CLR 1.1.4322)'))        ]        # need this twice - once to set cookies, once to log in...        self.loginToFacebook()        self.loginToFacebook()    def loginToFacebook(self):        """        Handle login. This should populate our cookie jar.        """        login_data = urllib.urlencode({            'email' : self.login,            'pass' : self.password,        })        response = self.opener.open("https://login.facebook.com/login.php", login_data)        return ''.join(response.readlines())

You won't necessarily need the HTTPS or Redirect handlers, but they don't hurt, and it makes the opener much more robust. You also might not need cookies, but it's hard to tell just from the form that you've posted. I suspect that you might, purely from the 'Remember me' input that's been commented out.