I had to play around with Mechanize lib to automate wordpress login. Proved out to be pretty handy.
#!/usr/bin/env python
from mechanize import Browser #pip install mechanize
br = Browser()
br.set_handle_robots(False)
br.addheaders = [("User-agent","Python Script using mechanize")]
sign_in = br.open("https://www.wordpress.com/wp-login.php") #the login url
br.select_form(nr = 0) #accessing form by their index. Since we have only one form in this example, nr =0.
br["log"] = "user@domain" #the key "username" is the variable that takes the username/email value
br["pwd"] = "passwd" #the key "password" is the variable that takes the password value
logged_in = br.submit() #submitting the login credentials
logincheck = logged_in.read() #reading the page body that is redirected after successful login
print logged_in.code #print HTTP status code(200, 404...)
print logged_in.info() #print server info
#print logincheck #printing the body of the redirected url after login
Execution:
user@server: ~/Python $ python wordpress-login.py 200 Server: nginx Date: Fri, 04 Mar 2016 16:45:40 GMT Content-Type: text/html; charset=utf-8 Content-Length: 5762 Connection: close Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN X-ac: 1.ams _dfw Strict-Transport-Security: max-age=15552000 X-UA-Compatible: IE=Edge user@server: ~/Python $
If you uncomment the last line in the script above it would print out the HTML code of the logged in page.