如何将我的用户名和密码发布到网页?

时间:2010-08-12 19:16:37

标签: perl http-post webautomation

我想用Perl将我的用户和密码发布到网站上。登录页面的来源是:

<div class="top">Sign In</div>
    <div class="row"><label for="username">Username:</label></div>
    <div class="row"><div id="login:usernameContainer">
        <input id="login:usernameContainer:username" type="text"
        name="login:usernameContainer:username" class="username" size="16" />
    </div></div>
    <div class="row"><label for="password">Password:</label></div>
    <div class="row"><div id="login:j_id598">
        <input id="login:j_id598:password" type="password"
        name="login:j_id598:password" value="" size="16" class="password" />
    </div></div>
    <div class="clearfix">
    <div class="row rememberme">
        <input id="login:rememberme" type="checkbox"
        name="login:rememberme" class="rememberme" />Remember Me
    </div>
    <div class="submit-button">
        <input type="image" src="/beta/style/shun/base/base/en/text/button/button-login.gif"
        name="login:j_id603" />
    </div>
</div>

如何发布我的用户名和密码?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您使用适当的字段名称(您可以在发布的HTML中找到它们)并填写您用于发布到页面的任何Perl代码的表单值(WWW :: Mechanize或您使用的任何其他名称)

答案 1 :(得分:1)

有关模块的详细信息,请参阅http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize.pm,但这里有一个例子:

use strict; use warnings;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
$mech->get( 'http://url.to/your/form' );
$mech->submit_form(
    form_number => 0,     # see if it's the first form, or change this
    fields      => {
        'login:usernameContainer:username'
            => 'username', # change to your user name
        'login:j_id598:password'
            => 'password', # change to your password
    }
);

如果它不适合您,或者字段总是有不同的名称等,请尝试将$mech->find_link与正则表达式一起使用,并使用返回的值更改所需的字段,然后提交表格。

希望这会有所帮助