Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

screen scraping MECHANIZE

by garskoci (Novice)
on Feb 05, 2005 at 14:41 UTC ( #428322=perlquestion: print w/replies, xml ) Need Help??
garskoci has asked for the wisdom of the Perl Monks concerning the following question:

Hello! This is a repost of a problem that I just can get straightened out. I am trying write a Perl script to log into my router and open and close ports. I am able to log and and move around. I and able to retrieve data like IP address etc. But not able to check a checkbox or uncheck a checkbox. There are no errors, it just doesn't seem to update the checkboxes. As you can see from the code I have tried a few different things, without any luck though. I think that this is the HTML that I am working with.
<td width="10%" align="center"><input type="checkbox" name="EnBt0" val +ue="checkbox" CHECKED > </td>
Can anyone help? Thanks.
#!/usr/bin/perl use strict; use warnings; use WWW::Mechanize; my $url=''; my $lo_url=''; my $mech = WWW::Mechanize->new( utocheck => 1 ); $mech->credentials( '', 'FVS318', 'admin' => 'secret' ); # And then $mech->get() the same as in the LWP::UserAgent code my $response = $mech->get($url); die "Error at $url\n ", $response->status_line, "\n Aborting" unless $ +response->is_success; print "SUCCESS data type: ", $response->content_type, "\n\n"; #print "\n\n"; #print $response->content; $mech->tick('EnBt3', 'checkbox', 'CHECKED'); #$mech->current_form->POST( submit => { name => "Apply ", value =>"sub +mit" } ); #$mech->click_button(number => 2); #$mech->submit(); #$mech->submit(); $mech->success or die "post failed: ", $mech->response->status_line; my $lo_response = $mech->get($lo_url); die "Error at $lo_url\n ", $lo_response->status_line, "\n Aborting" un +less $lo_response->is_success; print "\n\nDone.\n\n";

Replies are listed 'Best First'.
Re: screen scraping MECHANIZE
by Limbic~Region (Chancellor) on Feb 05, 2005 at 14:46 UTC
    You still haven't corrected the typo I made and corrected back in the other thread. I waited for a reply - why didn't you say something wasn't working back then? Have you tried the corrected code?

    You might also want to look at an example of working code using WWW::Mechanize. It is nearly impossible for us to tell you what you are doing wrong because we don't have access to your router to test with.

    Cheers - L~R

      L~R Thanks. I did add the a to autocheck. It gives the same results. It's not updating the check boxes. I will plow through the tutorial. Thank you.
        The only way that I can see for this to work is for you to run:
        #!/usr/bin/perl use strict; use warnings; use WWW::Mechanize; my $url= ''; my $mech = WWW::Mechanize->new( autocheck => 1 ); $mech->credentials( '', 'FVS318', 'admin' => 'secret' ); $mech->get( $url ); print $mech->content();
        And paste the result here in CODE and READMORE tags. We can then create a mock up locally to do testing.

        Cheers - L~R

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://428322]
Approved by Corion
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (5)
As of 2018-05-21 10:07 GMT
Find Nodes?
    Voting Booth?