使用WWW :: Mechanize的Perl Click Button

时间:2013-07-14 08:58:40

标签: javascript html perl web-scraping www-mechanize

我不熟悉使用Perl进行网页抓取,我尝试通过填写用户名和密码字段以及点击提交来提交网页。我检查了相关按钮的HTML代码,它看起来像:

<input type="submit" class="button formSubmission" value="Sign In">

我认为WWW::Mechanize无法处理JavaScript,但我不确定我所看到的代码是JavaScript,还是我的实现错误。我半心半意地尝试了$mech->click_button("Sign In");,但收到的错误是没有这样的字段存在。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

您的按钮没有name属性,这就是我确定无需点击的原因。您需要的是只需将您的字段提交到表单

$mech->submit_form(
    with_fields => {
        your_username_field => $user,
        your_password_field => $password,
        .....
    },
);

答案 1 :(得分:2)

查看click_button方法的documentation。它列出了几种查找要单击按钮的方法。您的按钮没有名称,但它有一个值,所以

$mech->click_button( value => "Sign In" );

应该这样做。

答案 2 :(得分:1)

value的{​​{1}}属性不是标识符。对于<input>按钮,这只是按钮上的文本。

如果您只想提交表单,可能只需要submit

如果您想点击某个按钮,但此按钮没有标识submit_form,那么您可能需要使用功能name优惠。你可以指定

click_button