Using Mechanize and hpricot to get property taxes

after reading about hpricot, mechanize and htree gems, I made an attempt
to write a simple code to grab property tax info for homes in Los
Angeles. i wrote this fragment which goes to the assessor’s website,
finds the form entries and correctly puts in an apn number (property
parcel number) but fails at the submit line. I tried page =
agent.submit(form) also to no avail. What am I doing wrong?

Two side questions: How do you auto-indent ruby code? I am using SciTe
editor and i find myself using my old matlab editor every once in a
while to beautify the codes. Hw could ruby not have auto-indentor?
Also quick way of turning an html table into a matrix, array of arrays?
thanks in advance.

require ‘rubygems’
require ‘hpricot’
require ‘mechanize’
agent = WWW::Mechanize.new
apn=‘2264-011-027’
page =
agent.get(‘https://ttc.lacounty.gov/secured_asp/vcheck_new/index.php’)
form=page.forms.with.name(“pageform”).first
form[‘mapbook’]=apn[0,4]
form.page=apn[5,3]
form.parcel=apn[9,3]
page = agent.submit(form,form.buttons.first) #gives error

error:

c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.7.6/lib/www/mechanize/page.rb:104:in
bases': undefined methodsearch’ for nil:NilClass (NoMethodError)
from
c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.7.6/lib/www/mechanize.rb:440:in
to_absolute_uri' from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.7.6/lib/www/mechanize.rb:659:infetch_page’
from
c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.7.6/lib/www/mechanize.rb:466:in
post_form' from c:/ruby/lib/ruby/gems/1.8/gems/mechanize-0.7.6/lib/www/mechanize.rb:269:insubmit’

On 18 Mai, 22:15, Cy Gar [email protected] wrote:

Also quick way of turning an html table into a matrix, array of arrays?
form[‘mapbook’]=apn[0,4]
`to_absolute_uri’
Posted viahttp://www.ruby-forum.com/.
Just pasted it into irb. I don’t run into errors…

page = agent.submit(form,form.buttons.first)
=> #<WWW::Mechanize::Page
{url
#<URI::HTTPS:0xfdbb0484c URL:https://ttc.lacounty.gov/secured_asp/
vcheck_new/index.php?
page=installments&SSID=3an61rbfpbje0uunii667oj706>}
{meta}
{title “Property Tax Payment Status Page”}
{iframes}
{frames}
{links
#<WWW::Mechanize::Link
“Select Another Parcel”
“index.php?page=main&SSID=3an61rbfpbje0uunii667oj706”>
#<WWW::Mechanize::Link
"\r\n \r\n "
“index.php?page=main&SSID=3an61rbfpbje0uunii667oj706”>}
{forms}>

Cy Gar wrote:

after reading about hpricot, mechanize and htree gems, I made an attempt
to write a simple code to grab property tax info for homes in Los
Angeles. i wrote this fragment which goes to the assessor’s website,
finds the form entries and correctly puts in an apn number (property
parcel number) but fails at the submit line. I tried page =
agent.submit(form) also to no avail. What am I doing wrong?

Two side questions: How do you auto-indent ruby code? I am using SciTe
editor and i find myself using my old matlab editor every once in a
while to beautify the codes.

With Scite once you name the file name.rb or select Ruby from the
language tab it should automatically handle the indentations.

Hw could ruby not have auto-indentor?

By auto-indent, i meant indenting an entire chunk of the code not indent
after each return hit. thanks! In matlab medit, you can highlite the
entire code block and use cntrl-I to indent the entire section… In
unix, cb is run to beautify c code.

Michael W. Ryder wrote:

With Scite once you name the file name.rb or select Ruby from the
language tab it should automatically handle the indentations.

Hey Thanks! But what the heck? I just reinstalled ruby gems, hpricot and
mechanize and still got the same error?? running from sciTe.

unknown wrote:

Just pasted it into irb. I don’t run into errors…

I tried it using fxri and i think the output you’re showing is for first
agent.get call:
page =
agent.get(‘https://ttc.lacounty.gov/secured_asp/vcheck_new/index.php’)

not the submit line. I still get an error on that line.

unknown wrote:

Just pasted it into irb. I don’t run into errors…

page = agent.submit(form,form.buttons.first)
=> #<WWW::Mechanize::Page
{url
#<URI::HTTPS:0xfdbb0484c URL:https://ttc.lacounty.gov/secured_asp/
vcheck_new/index.php?
page=installments&SSID=3an61rbfpbje0uunii667oj706>}
{meta}
{title “Property Tax Payment Status Page”}
{iframes}
{frames}

On Sun, May 18, 2008 at 6:56 PM, Cy Gar [email protected] wrote:

By auto-indent, i meant indenting an entire chunk of the code not indent
after each return hit. thanks! In matlab medit, you can highlite the
entire code block and use cntrl-I to indent the entire section… In
unix, cb is run to beautify c code.

I know that Emacs, Netbeans, and TextMate all do this for Ruby code.
I’m sure other editors do as well.


Avdi

Home: http://avdi.org
Developer Blog: http://avdi.org/devblog/
Twitter: http://twitter.com/avdi
Journal: http://avdi.livejournal.com

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs