Mechanize is a library to programmatic web browsing in python. Some basic features are:
- HTML form filling and submitting
- Link parsing and following
- Manage Browser history (
.back()and.reload()methods) - Modify/View HTML headers
- Deal with cookies
- Download files
- Setting proxies
The examples from here were very helpful. I was working the programming challenge 10 from Security Override. The task is to code a script that will scan 100 subdirectories for 3 given passwords, then formulate an answer an submit it in a form. The script below uses mechanize to login to the site, submit requests and compute the answer.
import urllib
import urllib2
import mechanize
# Login to site
url = 'http://securityoverride.com/login.php'
userinfo = {'username' : 'pennypecker', 'password' : 'abracadabra'}
br = mechanize.Browser()
br.addheaders = [('User-agent', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10')]
br.open(url)
br.select_form(name = "loginform")
br["user_name"] = userinfo['username']
br["user_pass"] = userinfo['password']
br.form.action = url
response = br.submit()
answer = ''
# Open sites
for i in range(1, 101):
response = br.open(challenge_url + 'moo/' + str(i) +'/index.php')
content = response.read()
print str(i) + ' = ' + content
if 'fail' != content:
answer = answer + str(i) + ':' + content + '; '
answer = answer[0:len(answer)-2]
print answer
# Open index and fill submit form with answer
br.open(challenge_url)
br.select_form(name = "submitform")
br["string"] = answer
br.form.action = challenge_url + '/index.php'
print br.form
response = br.submit()
References:
çankırı
ReplyDeletetekirdağ
giresun
manisa
XSJB