andyholyer has asked for the wisdom of the Perl Monks concerning the following question:
Guys, I have a slightly odd problem.
For the past few weeks I have written various scripts which access web sites (carrying monthly energy flow rates etc, since you ask), scrape the data into an array, and add them to a database.
Most of these are a simple application of WWW:Mechanize, sometimes with a little bit of JS which I need to reverse engineer.
I've just come to a tricky one. This one come from, of all places, Chile. Except that I have to translate from spanish is not especially relevant.
This particular form does something tricksy. Not its fault, but seems tricky to navigate past, which is why I need some help. The salient points are:
I've tried grabbing the values of the form and pasting them onto the end of the URL, but no, that produces a database error: I'm guessing there must be something in the asp code which can distinguish between a GET and a POST parameter. I suppose. Never heard of that before but what the hey.
For (I hope) obvious reasons, I can't choose to go to a different website. And the Chilean company isn't going to change their site...
The only thing I can think of to do, is to update the form element's action attribute. In theory I have the form object in:
%self->{mech}->forms[0]
..and I should be able to set this to a new value.. somehow. The code seems to imply it is a URI::_foreign. My first attempt hasn't worked (hey, I expect there's not even an updater method for the attribute at all). Anyway, this doesn't work:
$self->{mech}->form[0]->{action} = bless( do {(my $o = 'http://www.google.com;')}, 'URI::_foreign' );
Has anyone ever tried anything like this? Am I just insane? Advice, please.
Thanks in advance, Andy Holyer, Lewes, UK
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Very obscure WWW:Mechanize problem
by Corion (Patriarch) on Jan 08, 2012 at 20:12 UTC | |
by andyholyer (Initiate) on Jan 08, 2012 at 20:47 UTC | |
by Anonymous Monk on Jan 08, 2012 at 21:00 UTC |