Need Pattern For Logging Into A Website

Tim Daneliuk tundra at tundraware.com
Fri Jan 25 11:18:34 EST 2013


On 01/25/2013 10:01 AM, Steve Petrie wrote:
> 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()
> ...
>

Thanks.

-- 
----------------------------------------------------------------------------
Tim Daneliuk     tundra at tundraware.com
PGP Key:         http://www.tundraware.com/PGP/




More information about the Python-list mailing list