-1

我想用 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>

我要怎么做才能发布我的用户名和密码?

提前致谢。

4

2 回答 2

1

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

于 2010-08-12T19:47:16.507 回答
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正则表达式并使用返回的值来更改您需要的字段,然后提交表单。

希望这可以帮助

于 2010-08-13T08:05:19.573 回答