Every real-world mechanize script has to, first and foremost, make no assumption as to which screen actually will pop-up next. (It’s not enough merely to check for HTTP 202.) You have to identify the screen: did “The Monastery Gates” really appear? And so on. The next follow-on question is to be sure that you are (still) logged in ... a peculiarly frequent problem with this particular site, sometimes. You do this by explicitly checking, every time, that you do indeed find text like “Log my_userid Out” at the expected spot, vs. “Log In” at that same spot.
A mechanize-script in actual production is not quite as simple as it first appears: it must be a finite-state machine (FSM) design, because in the final analysis the host web-site is driving the bus. Your logic must send the HTTP messages that you expect will work, but you always have to reconcile this with what actually comes back. “Kilroy was an optimist” sometimes.
Fact of the matter is, a production mechanize-script is often two FSMs: one which tracks the state of the host, and the second which tracks the state of what you are trying to do.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
Outside of code tags, you may need to use entities for some characters:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||