Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

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='http://192.168.0.1/WanService.html'; my $lo_url='http://192.168.0.1/logout.html'; my $mech = WWW::Mechanize->new( utocheck => 1 ); $mech->credentials( '192.168.0.1:80', '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";

Comment on screen scraping MECHANIZE
Select or Download Code
Re: screen scraping MECHANIZE
by Limbic~Region (Chancellor) on Feb 05, 2005 at 14:46 UTC
    garskoci,
    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.
        garskoci,
        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= 'http://192.168.0.1/WanService.html'; my $mech = WWW::Mechanize->new( autocheck => 1 ); $mech->credentials( '192.168.0.1:80', '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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://428322]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (12)
As of 2014-12-26 00:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (163 votes), past polls