Perl点击按钮与WWW ::机械化

问题描述:

我是新来的网络抓取Perl,我试图通过填写用户名和密码字段,然后单击提交提交页面。我检查有问题的按钮的HTML代码,它看起来像:Perl点击按钮与WWW ::机械化

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

我读了WWW::Mechanize不能处理JavaScript,但我不知道如果我看代码是JavaScript的,或者我的实现是错误的。我半途而废地尝试$mech->click_button("Sign In");,但收到没有这样的字段存在的错误。

任何想法?

您的按钮没有name属性,这就是为什么我敢肯定没有需要点击它。你需要的是然后填写字段的形式

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

这是正确的。谢谢! – aquemini

查看click_button方法的documentation。它列出了几种可能的方法来查找您想要点击的按钮。你的按钮没有名字,但它确实有一个值,所以

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

应该这样做。

+0

它返回错误'上的/Library/Perl/5.12/WWW/Mechanize.pm一个未定义的值无法调用“头” 2471行“。 – aquemini

+0

这一定意味着它是JS,对吧? – aquemini

<input>value属性不是标识符。在submit按钮的情况下,这只是按钮上的文字。

如果您只是想提交表单,您可能只想要submit_form

如果您想单击一个按钮,但此按钮没有标识name,那么您可能需要使用click_button功能click_button的功能。你可以指定

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