Win32 :: IE:Mechanizeをいじって、認証が必要ないくつかのサイトに自動的にアクセスしようとしています。これまでのところ、中程度の成功を収めています。たとえば、yahooメールボックスに自動的にログインできます。しかし、多くのサイトで、CAPTCHAと呼ばれる可能性のある何らかの画像検証メカニズムが使用されていることがわかりました。私は彼らに何もできません。しかし、私が自動アクセスしようとしているサイトの1つは、プレーンテキストの検証コードを使用しています。これは、選択可能およびコピー可能な4桁で構成されています。ただし、これらは、を使用してフェッチできるソースファイルには含まれていません。
$mech->content;
インターネット一時ファイル内のすべてのファイルから、Webページに表示されているがソースファイルには表示されていないキーワードを検索しましたが、それでも見つかりません。
何が起こっているのか分かりますか?確認コードが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();
いつものように、どんな提案/コメントも大歓迎です:)
アップデート
私はこの問題を解決するためのそれほど賢くない方法を考え出しました。以下に投稿された私自身の回答にコメントしてください。いつものようにありがとう:)