我正在玩 Win32::IE:Mechanize 以尝试自动访问一些需要身份验证的站点。到目前为止,我已经取得了一定程度的成功,例如,我可以自动登录到我的雅虎邮箱。但是我发现很多网站都在使用某种图像验证机制,这可能被称为 CAPTCHA。我对他们无能为力。但我试图自动访问的网站之一是使用纯文本验证码。它由四位数字组成,可选择和复制。但它们不在可以使用获取的源文件中
$mech->content;
我通过Temporary Internet Files中的所有文件搜索了出现在网页上但不在源文件中的关键字,但仍然找不到。
知道发生了什么吗?我怀疑验证码以某种方式隐藏在某个 cookie 文件中,但我似乎找不到它:(
以下是完成除验证码以外的所有字段要求的代码:
use warnings;
use Win32::IE::Mechanize;
my $url = "http://www.zjsmap.com/smap/smap_login.jsp";
my $eccode = "myeccode";
my $username = "myaccountname";
my $password = "mypassword";
my $verify = "I can't figure out how to let the script get the code yet"
my $mech = Win32::IE::Mechanize->new(visible=>1);
$mech->get($url);
sleep(1); #avoids undefined value error
$mech->form_name("BaseForm");
$mech->field(ECCODE => $eccode);
$mech->field(MEMBERACCOUNT => $username);
$mech->field(PASSWORD => $password);
$mech->field(verify => $verify);
$mech->click();
像往常一样,任何建议/评论将不胜感激:)
更新
我想出了一个不太聪明的方法来解决这个问题。请评论我自己在下面发布的答案。一如既往地感谢:)