前言
perl的好處就是別人幫你打了一堆輪子,你只要找到你想要的輪子,然後把他裝上你的車身,於是,你的車子就跑得快又好了。這次我們來試用一下這款很棒的輪子WWW::Mechanize,看他的名字就知道他是專門在做網頁介面自動化的動作,你可以利用他來模仿填表,按下某個超連結或提交資料等,威力很強,但更重要的重點是,他還很簡單。哈,下面是連上自由求職網參加其投票活動的自動程式,懶得每上網去投的話,你只要每天執行一次這個程式,他就會幫你登入然後投票了,因為這個網在後端會去check資料,因此一天只能投一筆,如果他沒做這項檢查話,也許你可以一直投也說不定。或許你又想到了其他事,沒錯啦,你當然可以用他去投其他的網站,只要稍加修改,我說過的,運用之妙,存乎一心。

程式碼
use WWW::Mechanize;

my $mech=WWW::Mechanize->new();
$mech->get("http://yes123.com.tw/admin/mylogin.asp?back_asp=vote.asp");
$mech->success or die $mech->response->status_line;
$mech->form_number(1);
$mech->field('textfield22' => 'xxxxxxxx');
$mech->field('textfield32' => 'xxxxxxxx');
$mech->field('groovybtn13' => '登入');
$mech->submit();
$mech->success or die "post failed: ", $mech->response->status_line;
$mech->follow_link(text => "回首頁");
$mech->success or die "post failed: ", $mech->response->status_line;
$mech->follow_link(url_regex => qr/vote.asp/i);
$mech->success or die "post failed: ", $mech->response->status_line;
$mech->form_number(1);
$mech->field('vote' => '1');
$mech->field('b11' => 'todo');
$mech->submit();
$mech->success or die "post failed: ", $mech->response->status_line;

解說
$mech->field('textfield22' => 'xxxxxxxx'); xxxxxxxx部份是帳號
$mech->field('textfield32' => 'xxxxxxxx'); xxxxxxxx部份是密碼
自行代換你申請的帳號密碼即可

參考連結
WWW::Mechanize
我最討厭的同事
arrow
arrow
    全站熱搜

    jck11 發表在 痞客邦 留言(4) 人氣()