can*_*nin 0 forms perl automation web
我想写一个让我使用这个网站的脚本
http://proteinmodel.org/AS2TS/LGA/lga.html
(我需要使用它几百次,我不想手动这样做)
我已经在互联网上搜索了如何使用Perl完成这项工作,我遇到了WWW::Mechanize,这似乎正是我所寻找的.但是现在我发现我想要使用的网站上的表单没有名称 - 它的声明行只是读取
<FORM METHOD="POST" ACTION="./lga-form.cgi" ENCTYPE=multipart/form-data>
Run Code Online (Sandbox Code Playgroud)
起初我尝试简单地不设置我的WWW::Mechanize对象的form_name属性,当我为表单的电子邮件地址字段提供值时,它给了我这个错误消息:
Argument "my_email@address.com" isn't numeric in numeric gt (>) at /usr/share/perl5/WWW/Mechanize.pm line 1618.
Run Code Online (Sandbox Code Playgroud)
然后我尝试设置form_name到''以后' ',但它没有用,我只是得到这个消息:
There is no form named " " at ./automate_LGA.pl line 40
Run Code Online (Sandbox Code Playgroud)
有什么方法可以处理没有名字的表格?如果有人在这里可以回答这个问题,那将是最有帮助的 - 即使答案指向不使用WWW::Mechanize,因为我只是想完成工作,(或多或少)无论如何.
非常感谢提前!
一种简单而且更健壮的方法是使用WWW :: Mechanize中的$ mech-> form_with_fields()方法根据它包含的字段选择所需的表单.
更容易,使用submit_form该with_fields选项的方法.
例如,要找到一个包含名为"username"和"password"字段的表单,请完成它们并提交表单,它就像以下一样简单:
$mech->submit_form(
with_fields => { username => $username, password => $password }
);
Run Code Online (Sandbox Code Playgroud)
这样做的好处是,如果他们将HTML改变,改变HTML中表单的顺序,或者在您感兴趣的表单之前添加新表单,您的代码将继续工作.
| 归档时间: |
|
| 查看次数: |
445 次 |
| 最近记录: |