Need Pattern For Logging Into A Website

Steve Petrie spetrie at gmail.com
Fri Jan 25 17:01:39 CET 2013


On Thursday, January 24, 2013 8:29:51 PM UTC-5, Tim Daneliuk wrote:
> I need to write a Python script to do the following:
> 
> 
> 
>    - Connect to a URL and accept any certificate - self-signed or authoritative
> 
>    - Provide login name/password credentials
> 
>    - Fill in some presented fields
> 
>    - Hit a "Submit" button
> 
> 
> 
> Why?  Because I don't want to have to start a browser and do this
> 
> interactively every time I authenticate with a particular server.
> 
> I want to do this at the command line with no interactive intervention.
> 
> 
> 
> I know Python pretty well.  I don't quite know how to do this and
> 
> was hoping someone had a simple pattern they could share for
> 
> doing this.
> 
> 
> 
> TIA,
> 
> -- 
> 
> ----------------------------------------------------------------------------
> 
> Tim Daneliuk     tundra at tundraware.com
> 
> PGP Key:         http://www.tundraware.com/PGP/

The mechanize module (http://wwwsearch.sourceforge.net/mechanize/) might be a place to start.  I've done something similar with code like this:

response = mechanize.urlopen(login_form_url)
forms = mechanize.ParseResponse(response, backwards_compat=False)
response.close()
form = forms[0]                               # might be more than one, though
                                              # fill the form
form.set_value(username, name='userName')
form.set_value(password, name='password')
                                              # set headers - user-agent, etc.
login_request = form.click()
login_response = mechanize.urlopen(login_request)
login_response_content = login_response.read()
...



More information about the Python-list mailing list