Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

About lwp::useragent

by pmaeght (Initiate)
on Mar 14, 2022 at 17:42 UTC ( [id://11142089]=perlquestion: print w/replies, xml ) Need Help??

pmaeght has asked for the wisdom of the Perl Monks concerning the following question:

Hi,

I found this script in Linux Mag 56.

Is it still valid?

I get a 500 error.

Thank you.

#!/usr/bin/perl -w use strictly; useLWP::UserAgent; use HTML::Form; # personal settings my($user, $pass) = qw(BooK S3kr3t); my $base = 'http://www.perlmonks.org/'; # agent initialization my $ua = LWP::UserAgent->new(agent => 'Mozilla/4.73 [en] (X11; I; Linu +x 2.2.16 i686; Nav)' ); # creation of the request my $req = HTTP::Request->new( GET => "${base}index.pl?node=login" ); # run the request and get the response my $res = $ua->request($req); die $res->status_line if not $res->is_success; # the login form is the second form on the page my $form = ( HTML::Form->parse( $res->content, $base ) )[1]; # fill in the fields $form->find_input('user')->value($user); $form->find_input('passwd')->value($pass); # validate and return the form $ua->request( $form->click );

(code tags added by Discipulus)

Replies are listed 'Best First'.
Re: About lwp::useragent
by Corion (Patriarch) on Mar 14, 2022 at 17:55 UTC

    If you get a 500 error back, look at the exact contents of the error message () the problem

    $response = $ua->request($request); if ($response->is_success) { print $response->decoded_content; } else { print STDERR $response->status_line, "\n"; }

    Maybe there is some error on your side, maybe there is some error with the remote server, but without the error message, it's hard to tell where the error is.

Re: About lwp::useragent
by marto (Cardinal) on Mar 14, 2022 at 17:59 UTC

    The code you posted doesn't compile, I can see some typos:

    use strictly; useLWP::UserAgent; my $form = ( HTML::Form->parse( $res->content, $base ) )1;

    perl -c yourfilenamehere.pl would point you in the right direction. There's probably more exciting things to do these days than trying to automate a login around here :)

Re: About lwp::useragent
by GotToBTru (Prior) on Mar 14, 2022 at 19:05 UTC

    Please consult Writeup Formatting Tips and What shortcuts can I use for linking to other information?. A well formatted question is easier to read and easier to answer!

    my $form = ( HTML::Form->parse( $res->content, $base ) )1

    should be

    my $form = ( HTML::Form->parse( $res->content, $base ) )[1];

    Without the code tags the index was interpreted as a reference.

    But God demonstrates His own love toward us, in that while we were yet sinners, Christ died for us. Romans 5:8 (NASB)

Re: About lwp::useragent
by cavac (Parson) on Mar 15, 2022 at 11:53 UTC

    Didn't run the code, but i did spot one glaring issue right away:

    Mozilla/4.73 [en] (X11; I; Linux 2.2.16 i686; Nav)

    If you access one of my sites with that completely outdated and suspicious useragent string, there are two possibilities: Either one of my security scripts will go "Huh, outdated spam bot? I better Firewall that IP" or it will mark that string for manual review and i will go "Wow, haven't seen that one since the the 90's! Firewallbot, make that go away!"

    perl -e 'use Crypt::Digest::SHA256 qw[sha256_hex]; print substr(sha256_hex("the Answer To Life, The Universe And Everything"), 6, 2), "\n";'

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (1)
As of 2024-04-25 01:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found