我不熟悉使用Perl进行网页抓取,我尝试通过填写用户名和密码字段以及点击提交来提交网页。我检查了相关按钮的HTML代码,它看起来像:
<input type="submit" class="button formSubmission" value="Sign In">
我认为WWW::Mechanize
无法处理JavaScript,但我不确定我所看到的代码是JavaScript,还是我的实现错误。我半心半意地尝试了$mech->click_button("Sign In");
,但收到的错误是没有这样的字段存在。
有什么想法吗?
答案 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