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.