WWW::Mechanize does not execute any JavaScript. You will have to look at the returned JavaScript and then look what the next URL to fetch will be, and fetch that URL then from the script :
use strict; use WWW::Mechanize; my $mech = WWW::Mechanize->new(); $mech->quiet(1); $mech->get("http://www.thesite.com/sample.asp"); my $content = $mech->content(); $mech->content =~ qr(\.location = "(http://.*?)") or die "Couldn't find anything matching '.location = \"http://...\" +in $content"; my $new_location = $1; print $new_location; $mech->get($new_location); print $content;
If you want to see the "real" behaviour in your browser as well, you have to switch off JavaScript in your browser.
Perl does not yet have a real JavaScript interpreter with the browser DOM, but there is JavaScript.pm and Scripting::JavaScript, both by Claes Jacobson.
perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web
In reply to Re: My Mechanize script cannot work ?
by Corion
in thread My Mechanize script cannot work ?
by donno20
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |