[Chicago-talk] Converting from www::mech to underlying objects
Jay Strauss
me at heyjay.com
Mon Feb 14 20:17:00 PST 2005
Hi,
Awhile back, Leland showed me how to read data from the CBOE site like:
use WWW::Mechanize;
my $url = "http://www.cboe.com/DelayedQuote/QuoteTableDownload.aspx";
my $mech = WWW::Mechanize->new();
$mech->agent_alias( 'Windows IE 6' );
$mech->get( $url );
$mech->form(0);
$mech->set_fields( txtTicker => 'QQQQ');
my $form = $mech->current_form;
$form->find_input('__VIEWSTATE')->name('NOVIEWSTATE');
my $request = $form->click;
$mech->request($request, "QQQQ.txt");
I thought I'd try to fit it into the Finance::Quote namespace as
Finance::Quote::CBOE. Finance::Quote doesn't use www::mech, it uses the
underlying modules like LWP::UserAgent. So I'm trying to convert the
above to work on the more base stuff. Below is my code, it seems like
its correct, but when I run it I get an "Invalid request" back from the
server.
Could someone give me a nudge in the right direction?
Thanks
Jay
sub option_chain {
my $quoter = shift;
$symbol = 'QQQQ';
my $ua = $quoter->user_agent;
$ua->agent('Windows IE 6');
my $response = $ua->get($url);
my $form = HTML::Form->parse($response->content,
$response->base);
$form->value(txtTicker => $symbol);
$form->find_input('__VIEWSTATE')->name('NOVIEWSTATE');
my $request = $form->click;
$ua->request($request, "$symbol.txt");
}
More information about the Chicago-talk
mailing list