Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

screen scraping MECHANIZE

by garskoci (Novice)
on Feb 05, 2005 at 14:41 UTC ( [id://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";

Replies are listed 'Best First'.
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

        A reply falls below the community's threshold of quality. You may see it by logging in.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
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?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (3)
As of 2024-03-29 04:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found