Need help translating Ruby code

K

Kevin Tran

Hi I am new to Ruby from Python and am still learning some stuff. I
have a Ruby program that uses the mechanize library to connect to a Web
site and authenticate with a username and password. The issue I have is
that I need to get this code translated into Python. The Python
mechanize library is not very well documented and I was wondering if
anyone here had any experience using this library in Ruby or Python.
Basically the only tricky part of this program is that it needs to add a
field to the form on the page. This extra field, "__EVENTTARGET", needs
to be added explicitly. I cannot find the Python equivalent to the
WWW::Mechanize::Form::Field.new(nil,nil) method. Thank you in advance.
I hope I explained myself well.




Code:
require 'rubygems'
require 'mechanize'

Hpricot.buffer_size = 262144

auth = {
:username => "[email protected]",
:password => "letmeinalready"
}

login_url = "http://www.princetonreview.com/Login3.aspx?uidbadge=" # !>
`&' interpreted as argument prefix
agent  = WWW::Mechanize.new
page = agent.get( login_url )
my_form = page.forms.first

my_form['ctl00$MasterMainBodyContent$txtUsername']= auth[:username]
my_form['ctl00$MasterMainBodyContent$txtPassword']= auth[:password]


target_field = WWW::Mechanize::Form::Field.new(nil,nil)
target_field.name = "__EVENTTARGET"
target_field.value  = "ctl00$MasterMainBodyContent$btnLogin"
my_form.fields << target_field

new_page = my_form.submit

# examine output to make sure it worked
new_page = agent.get("http://www.princetonreview.com/YourStuff.aspx")

pp new_page
 
G

Glen Holcomb

[Note: parts of this message were removed to make it a legal post.]

Hi I am new to Ruby from Python and am still learning some stuff. I
have a Ruby program that uses the mechanize library to connect to a Web
site and authenticate with a username and password. The issue I have is
that I need to get this code translated into Python. The Python
mechanize library is not very well documented and I was wondering if
anyone here had any experience using this library in Ruby or Python.
Basically the only tricky part of this program is that it needs to add a
field to the form on the page. This extra field, "__EVENTTARGET", needs
to be added explicitly. I cannot find the Python equivalent to the
WWW::Mechanize::Form::Field.new(nil,nil) method. Thank you in advance.
I hope I explained myself well.




Code:
require 'rubygems'
require 'mechanize'

Hpricot.buffer_size = 262144

auth = {
:username => "[email protected]",
:password => "letmeinalready"
}

login_url = "http://www.princetonreview.com/Login3.aspx?uidbadge=" # !>
`&' interpreted as argument prefix
agent  = WWW::Mechanize.new
page = agent.get( login_url )
my_form = page.forms.first

my_form['ctl00$MasterMainBodyContent$txtUsername']= auth[:username]
my_form['ctl00$MasterMainBodyContent$txtPassword']= auth[:password]


target_field = WWW::Mechanize::Form::Field.new(nil,nil)
target_field.name = "__EVENTTARGET"
target_field.value  = "ctl00$MasterMainBodyContent$btnLogin"
my_form.fields << target_field

new_page = my_form.submit

# examine output to make sure it worked
new_page = agent.get("http://www.princetonreview.com/YourStuff.aspx")

pp new_page
I think this would be a better question for a Python list as you want a
Python answer.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,599
Members
45,175
Latest member
Vinay Kumar_ Nevatia
Top