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

Re: Establish a session to call URL with Perl

by sundialsvc4 (Abbot)
on Jul 06, 2013 at 18:52 UTC ( [id://1042936]=note: print w/replies, xml ) Need Help??


in reply to Establish a session to call URL with Perl

You simply need to tell Mech to do whatever “clicking on that hyperlink” would do.   This can be easy, or it can be hard.   :-)

It’s easy when the hyperlink is a simple href="somewhere" ... all that you need to do is to tell Mech to follow_link().   If it is a button or an image, you can click() it.   (Or, if you know what the link is and that it will never change, you can simply send Mech to its destination.   However, that approach creates a dependency between your script and the server’s ... if they change their code, your script will break.)

Things get harder when the designer of the form chooses instead to use JavaScript, with a onclick="" handler.   WWW::Mechanize::FAQ has a specific section discussing the implications of JavaScript.   Most of the time, cursory examination of the JavaScript code will reveal what it actually sends back to the host, and you can do that directly.

Successful login will undoubtedly work by sending you back a cookie, along with a redirect.   Mech can store the cookie and follow the redirect.   But, remember to correctly handle the case where the login is not correct, or some kind of server error is thrown, even if you are using “known good” credentials in your program.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2024-04-24 07:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found