我想用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>
如何发布我的用户名和密码?
提前致谢。
答案 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
与正则表达式一起使用,并使用返回的值更改所需的字段,然后提交表格。
希望这会有所帮助