Problem getting mechanize to return value, or even

2019-08-16 17:22发布

Im trying to use the Perl module Mechanize, but Im having a bit of trouble. The following piece of code is supposed to upload files to fileserve from google, but it doesnt work and it doesnt seem to return ANY errors, please help!

use strict;
use warnings;
use WWW::Mechanize;

my $resp;

my $insert_url = 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js';

use constant INDEX_SITE => 'fileserve.com';
use constant USERNAME => 'chuckaway';
use constant PASSWORD => 'chuckaway99';

my $mech = WWW::Mechanize->new();

my $url = 'http://www.fileserve.com/remote-upload.php';

$mech->get($url);

eval {
     #print "# submit login $url\n";
     $resp = $mech->submit_form(form_name => 'loginForm', 
                                fields => { username => 'loginUserName', 
                                password => 'loginUserPassword' }
                               );
     die $resp->status_line unless $resp->is_success;
     };

warn $@ if $@;
return  if $@;

$resp = $mech->get($url);

eval {
     $resp = $mech->submit_form(form_name => 'remoteUploadForm', fields => { urls => '$insert_url'});
     };

1条回答
Summer. ? 凉城
2楼-- · 2019-08-16 18:22

Submitting the form with the password fails with Status 200, it returns the login form again. Have a look at your submit_form call, you do not fill in the credentials you set up earlier in the program.

Use Wireshark or similar network sniffer to compare with a known good login request-response pair.

POST /login.php HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Accept-Encoding: gzip
Host: www.fileserve.com
Referer: http://www.fileserve.com/remote-upload.php
User-Agent: WWW-Mechanize/1.66
Content-Length: 178
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=2i8gu7jha1i98fjvemveebmvf0
Cookie2: $Version="1"

loginUserName=&loginUserPassword=&autoLogin=on&recaptcha_response_field=&recaptcha_challenge_field=&recaptcha_shortencode_field=&password=loginUserPassword&username=loginUserName

HTTP/1.1 200 OK
X-Powered-By: PHP/5.3.1
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Encoding: gzip
Vary: Accept-Encoding
Content-type: text/html
Connection: close
Transfer-Encoding: chunked
Date: Thu, 31 Mar 2011 13:29:14 GMT
Server: fileserve


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="Free 1-Click File Hosting. Easy File Distribution, Fast and Secure. Share and upload files for free. Get unlimited online storage." />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<title>
                FileServe - Login - Free File Hosting, Online Storage &amp File Upload
        </title>
<link href="/styles/base.css?38" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="/images/favicon.ico" />
<link rel="image_src" href="/images/fileserve_newsfeed.jpg" />

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="/script/fileserve.js"></script>




<script>
if (top != self) top.location = self.location;
</script>

<script>
/*$(document).ready(function(){
        $("body").append('<a href="javascript:displayOverlayDialog(\'bonus_promo\');" class="promo_tab"></a>');
});*/
$(document).ready(function() {
            DD_roundies.addRule('.panel, .panel .timing, .download_boxes .premium, #login_area, .comparison .plan, .file_control, .file_control .toolbar, .dialog, .tips_message, .comparison, .payout_table, .money_signup, .news_box, .my_earnings .payable, .dashboard .account .acc_table, .manager_alert, .premium_extend, .join_box, .dialog_choose_plan, ul.highlight', '6px', true);
            DD_roundies.addRule('.file_manager .file_control', '6px 6px 0 0', true);
            DD_roundies.addRule('.file_manager .file_control .toolbar', '6px 6px 0 0', true);
})
</script>
        <script src="/script/signup_validate.js" type="text/javascript"></script>
    <script type="text/javascript" src="/script/recaptcha_ajax.js"></script>
    <script src="/script/signin_captcha.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(document).ready(function(){


        });
        var reCAPTCHA_publickey='6LdSvrkSAAAAAOIwNj-IY-Q-p90hQrLinRIpZBPi';
    </script>
    <style>
    #captchaArea {margin: 5px auto; width:270px;}
    #captchaValue {width:80px;}
    #captchaErrLabel {display: block;}
    #captchaError {margin-bottom:4px; color:#FF3333;}
    #recaptcha_image {width:230px!important; height:57px!important;}
    #recaptcha_image img {width:230px!important; height:44px!important;}
    #recaptcha_btns {float:right; width:34px; padding-bottom:3px;}
    </style>

    </head>
    <body id="sign_up">
        <div id="container">








<script>

    $(document).ready(function(){
        $('#login').mouseenter(function(){
            $('#login_area').show();
        });
        $('#no_sign').click(function(){
            $("#login_area").hide();
        });

        $('#partner_payment_type2').change(onSelectChange);
        $('#partner_email2').keypress(onSelectChange);

        function onSelectChange(){
            var selected = $("#partner_payment_type2 option:selected");
            var regexp = selected.attr('rel');

            jQuery.validator.addMethod("patternCheck", function(value, element) {
                var re = new RegExp(regexp);
                return re.test(value);
            }, jQuery.format("Invalid payment account"));

            $('#promoForm #partner_email2').focus();
        }

        var promoFormValidator = $('#promoForm').validate({
            errorElement: 'span',
            errorClass: 'fail_info',
            errorPlacement: function(error, element){
                $('#promoError').html(error);
                //$(error).insertAfter(element.next());
            },
            success: function(label){
                label.remove();
            },
            rules: {
                partner_email2:{
                    required: true,
                    patternCheck: true
                }
            },
            messages: {
                partner_email2:{
                    required: "Provide your payment account",
                    patternCheck: "Invalid payment account"
                }
            }
        });

        $('#sys_clock .lang_select').bind('mouseenter mouseleave', function() {
            $('div:eq(0)', this).slideToggle(150);
            $(this).toggleClass('hover');
            num = $(this).hasClass('hover') ? $('a', this).size() : 1;
            $(this).stop(true, false).animate({ height: num * ($('a', this).height()+2) },200);
        });

    });
    function displayOverlayDialog(layerId) {
        window.scroll(0,0);
        //$('#upgrade_btn').attr('disabled', true);
        $('#middle_panel').fadeTo('slow', 0.5);
        $('.middle').fadeTo('slow', 0.5);
        $('#' + layerId).show();
    }

    function hideOverlayDialog(layerId) {
        $('#' + layerId).hide();
        //$('#upgrade_btn').attr('disabled', false);
        $('#middle_panel').fadeTo('slow', 1);
        $('.middle').fadeTo('slow', 1);
    }

    function changeLocale(locale) {
        $("#localeForm [name=locale]").val(locale);
        $("#localeForm").submit();
    };

    initClock('March 31, 2011 09:29:14', 'dynamic_clock');
</script>

<style>
input.bonuspromo {display:inline; padding:1px;}
</style>


    <!-- promo tab -->
    <a href="http://www.videobb.com/rewards.php?a=103" target="_blank" class="promo_tab promo_videobb">
        <!--[if IE 6]>
        <script>
        $(document).ready(function() {
            $(window).scroll(function() {
                $('.promo_tab').css('top', $(this).scrollTop() +192 + "px");
            });
        })
        </script>
        <![endif]-->
    </a>
    <!-- promo tab ends -->

<div id="header">
    <a href="/" id="logo" alt="Free File Hosting & File Upload with FileServe."><span>FileServe</span></a>
    <div class="sys_clock" id="sys_clock">
        <span id="dynamic_clock">09:29 AM, 31 March 2011 EST</span>
                <form id="localeForm" name="localeForm" action="/login.php" method="post"><input name="locale" type="hidden" value=""/></form>
    </div>
                <div id="menu">
            <div class="menu_tag off_left"></div>
<div id="menu_upload" class="menu_tag off_right_off"><a href="/upload-file.php">Upload</a></div>
<div id="menu_premium" class="menu_tag off_right_off"><a href="/premium.php">Premium</a></div>
<!--<div id="menu_money" class="menu_tag off_right_off"><a href="/partner-signup.php">Make Money</a></div>-->
<div id="menu_money" class="menu_tag off_right_off"><a href="/partner-info.php">Make Money</a></div>
<div id="menu_news" class="menu_tag off_right_off"><a href="/news.php">News</a></div>
<div id="menu_help" class="menu_tag off_right_hl"><a href="/help.php">Help</a></div>
<!-- <div id="menu_contact" class="menu_tag off_right_hl"><a href="/contact-us.php">Contact us</a></div> -->
<div id="menu_signup" class="menu_tag hl_right_end"><a href="/signup.php">Sign up</a></div>     </div>
        <div class="clear"></div>
        <div class="sub_bar">
            <div class="submenu">
                            </div>
            <span class="status"><strong>You are not logged in</strong> <a id="login" href="/login.php">Login</a> | <a href="/signup.php">Sign up</a></span>
            <form action="/login.php" method="POST">
            <div id="login_area" style="display:none">
                <table border="0" cellspacing="0" cellpadding="1">
                    <tr>
                        <td height="40" colspan="2"><h3>Login</h3></td>
                    </tr>

                    <tr>
                        <td>Username</td>
                        <td><label class="textfield"><input type="text" name="loginUserName" /></label></td>
                    </tr>
                    <tr>
                        <td>Password</td>
                        <td><label class="textfield"><input type="password" name="loginUserPassword" /></label></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td>
                            <span class="caption"><input type="checkbox" name="autoLogin" checked> Remember me</span>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <table style="line-height:12px" border="0" cellspacing="0" cellpadding="0">
                                <tr>
                                    <td>
                                        <div class="fpw_text"><a href="/forgot-password.php" class="forpw">Forgot password?</a></div>
                                    </td>
                                    <td rowspan="2" valign="top">
                                        <label class="btu_login"><input type="submit" name="loginFormSubmit" value="Login" /></label>
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <div class="fpw_text"><a href="/retrieve_premium.php" class="forpw">Lost your premium account?</a></div>
                                    </td>
                                </tr>
                            </table>
                        </td>
                    </tr>                </table>
                <a href="javascript:void(0)" id="no_sign" class="no_sign"></a>
            </div>
            </form>
        </div>

<div class="clear"></div>
</div>
<!---promo-->
<div id="bonus_promo" class="dialog_overlay" style="display:none;">
    <div class="dialog promo">
        <a class="close_btn" href="javascript:hideOverlayDialog('bonus_promo');"></a>

        <div class="panel">
        <form name="promoForm" id="promoForm" action="/partner-signup.php" method="post">
            <table>
                <tr>
                    <td colspan="3"><a class="banner" href="/partner-info.php"></a></td>
                </tr>
                            </table>
        </form>
        </div>

    </div>
</div>
<!---promo ends-->


            <div class="middle">
                <h1>Login</h1>
                <!--left-->
                <!--left end-->
                <!--right-->
                <div class="left_box login_box">
                    <div><form id="loginForm" name="loginForm" action="/login.php" method="post">
                        <table class="signup_tab">
                            <tr>
                                <td width="160" valign="top">Username</td>
                                <td width="272" class="textfield">
                                    <input type="text" size="38" maxlength="20" name="loginUserName" />
                                    <label>Enter your current username</label>
                                                                    </td>
                            </tr>
                            <tr>
                                <td width="160" valign="top">Password</td>
                                <td class="textfield">
                                    <input type="password" size="38" maxlength="20" name="loginUserPassword" />
                                    <label>Enter your current password</label>
                                                                    </td> 
                            </tr>
                            <tr>
                                <td></td>
                                <td><div><a href="/forgot-password.php" class="forpw">Forgot password?</a></div>
                        <div><a href="/retrieve_premium.php" class="forpw">Lost your premium account?</a></div>
                        </td>
                            </tr>
                            <tr>
                                <td></td>
                                <td><br/><span class="TandC"><input type="checkbox" name="autoLogin" checked> Remember me</span></td>
                            </tr>
                            <tr>
                        <td></td>
                        <td>
                        <div id="captchaArea" style="display:none;">
                                <div id="recaptcha_widget">
                                    <div id="recaptcha_btns">
                                        <div><a href="javascript:Recaptcha.reload()"><img width="25" height="17" id="recaptcha_reload" src="http://api.recaptcha.net/img/clean/refresh.gif" alt="Get a new challenge"/></a></div>
                                        <div class="recaptcha_only_if_image"><a href="javascript:Recaptcha.switch_type('audio')"><img width="25" height="16" alt="Get an audio challenge" id="recaptcha_switch_audio" src="http://api.recaptcha.net/img/clean/audio.gif"></a></div>
                                        <div class="recaptcha_only_if_audio"><a href="javascript:Recaptcha.switch_type('image')"><img width="25" height="16" alt="Get a visual challenge" id="recaptcha_switch_img" src="http://api.recaptcha.net/img/clean/text.gif"></a></div>
                                        <div><a href="javascript:Recaptcha.showhelp()"><img width="25" height="16" id="recaptcha_whatsthis" src="http://api.recaptcha.net/img/clean/help.gif" alt="Help"></a></div>
                                    </div>
                                    <div id="recaptcha_image"></div>
                                    <input type="text" id="recaptcha_response_field" class="textfield" size="30" name="recaptcha_response_field" />
                                    <input type="hidden" id="recaptcha_challenge_field" name="recaptcha_challenge_field" />
                                    <input type="hidden" id="recaptcha_shortencode_field" name="recaptcha_shortencode_field" value="" />

                                    <div id="captchaAreaLabel">
                                        <label class="recaptcha_only_if_image">Enter the code shown above</label>
                                        <label class="recaptcha_only_if_audio">Enter the numbers you hear</label>
                                    </div>
                                </div>
                            </div>
                            <div id="captchaError"></div>
                                    </td>
                    </tr>
                            <tr>
                                <td width="160">&nbsp;</td>
                        <td><br />
                                                <input class="btu4" type="submit" name="loginFormSubmit" value="Login" />
                                                </td>
                            </tr>                       </table>
                        </form>
                    </div>
                </div>  
                <!--right end-->    
                <div class="clear"></div>
            </div>
        <!--end middle-->
        <div class="tail"></div>
        </div>
        <!--footer-->

<div id="footer" class="footer">
    <div>
    <ul>
        <li class="title">Features</li>
        <li><a href="/upload-multiple-files.php">Upload Multiple Files</a></li>
        <li><a href="/remote-upload.php">Remote Upload</a></li>
        <li><a href="/ftp-upload.php">FTP Upload</a></li>
        <li><a href="/partner-info.php">Become an Affiliate</a></li>
        <li><a href="/link-checker.php">Check FileServe Links</a></li>
        <li><a href="/about-free-file-hosting.php">About Free File Hosting</a></li>
    </ul>
    <ul>
        <li class="title">Account</li>
        <li><a href="/login.php">Login</a></li>
        <li><a href="/signup.php">Signup for Free</a></li>
        <li><a href="/premium.php">Become a Premium User</a></li>
        <li><a href="/redeem.php">Redeem</a></li>
        <li><a href="/retrieve_premium.php">Reclaim Premium Account</a></li>
        <li><a href="http://reseller.fileserve.com">Become a Reseller</a></li>
    </ul>
    <ul>
        <li class="title">Support</li>
        <li><a href="/news.php">News</a></li>
        <li><a href="/faq.php">FAQ</a></li>
        <li><a href="/dmca.php">DMCA</a></li>
        <li><a href="/help.php">Help</a></li>
        <li><a href="/terms.php">Terms of Use</a></li>
        <li><a href="/sitemap.php">Site Map</a></li>
        <li><a href="/privacy-policy.php">Privacy Policy</a></li>
    </ul>
    <ul>
        <li class="title">Contact</li>
        <li><a href="/advertise-with-us.php">Advertise with us</a></li>
        <li><a href="/about-us.php">About us</a></li>
        <li><a href="/contact-us.php">Contact us</a></li>
        <li><a href="/link-to-us.php">Link to us</a></li>
    </ul>
    <div class="clear"></div>
    <p>Copyright &copy; 2010 FileServe, All Rights Reserved</p>
    <h3 class="footer_bottom">Free 1-Click File Hosting. Easy File Distribution, Fast and Secure. <br/>Get unlimited online storage.</h3>
    </div>
</div>

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ?
"https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' (http://google-analytics.com/ga.js') type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-15255203-1");
pageTracker._trackPageview();
} catch(err) {}</script>

<script type="text/javascript"><!--
EXref="";top.document.referrer?EXref=top.document.referrer:EXref=document.referrer;//-->
</script><script type="text/javascript"><!--
EXs=screen;EXw=EXs.width;navigator.appName!="Netscape"?
EXb=EXs.colorDepth:EXb=EXs.pixelDepth;
navigator.javaEnabled()==1?EXjv="y":EXjv="n";
EXd=document;EXw?"":EXw="na";EXb?"":EXb="na";
location.protocol=="https:"?EXprot="https":EXprot="http";
EXref?EXref=EXref:EXref=EXd.referrer;EXsrc="src";
EXd.write("<img "+EXsrc+"="+EXprot+"://nht-2.extreme-dm.com",
"/n3.g?login=fsricky&amp;url="+escape(document.URL)+"&amp;pv=&amp;",
"jv="+EXjv+"&amp;j=y&amp;srw="+EXw+"&amp;srb="+EXb+"&amp;",
"l="+escape(EXref)+" height=1 width=1>");//-->
</script><noscript><div id="nneXTReMe"><img height="1" width="1" alt="" src="http://nht-2.extreme-dm.com/n3.g?login=fsricky&amp;url=nojs&amp;j=n&amp;jv=n&amp;pv=" /></div></noscript>
    </body>
</html>
查看更多
登录 后发表回答