使用Mechanize绕过asp登录

时间:2013-10-07 11:51:46

标签: asp.net perl mechanize www-mechanize

我在asp页面登录时遇到了一些问题。

这是我的代码:

#!/usr/bin/perl -w
use strict;
use warnings;
use WWW::Mechanize;
use LWP::Debug qw(+);
my $mech = WWW::Mechanize->new;
$mech->agent('User-Agent=Mozilla/4.0');
$mech->get( 'http://site.net/index.asp' );
$mech->submit_form(
    form_name => 'form',
    fields      => {
        xpto    => '123'
    }
);
my $app_content = $mech->content();
print "$app_content\n";

这就是我从终端获得的:

    <html>
    <head>
        <title>Anti Bot</title>
    </head>
    <body>
        <h1 style="color:red;">Bots are not allowed here</h1>
    </body>
</html>

1 个答案:

答案 0 :(得分:1)

它检测到您的用户代理是奇怪的(大多数不是以“User-Agent =”开头),或者是在通过浏览器正常提交期间设置(或删除)字段的形式中的javascript。尝试在浏览器中填写登录表单并观察实际发布的内容(通过Firebug等),并更新您的脚本以匹配。或者,使用可以运行javascript的网络抓取库,例如WWW::Mechanize::Firefox

我当然假设您有权这样做。有些人有充分的理由不想在他们的网站上使用机器人。