您的位置:首页 > 其它

Perl script for IE automation

2008-04-23 12:41 591 查看


# Here is a little script that I wrote to do some automatic URL browsing using IE
# what it does is to read proxy server and port from a text named "proxylist.txt", under the same dir,
# then test if that port is active, if it is, then set it as IE's proxy, then it fires IE and browse the url picked #randomly from an array @url; then close IE.
#
# This script runs on Winodws with activestate perl installed. Also you need to install #Win32::IEAutomation module.
#
# proxylist.txt formate should be like the following:
#145.123.202.56 3128
#234.80.225.37 8080

    use Win32::IEAutomation::WinClicker;


use Win32::IEAutomation;


use strict;


use Win32::TieRegistry ( Delimiter=>"/", ArrayValues=>1 );


use Net::Ping;


my $path = "proxylist.txt";


my $ie = Win32::IEAutomation->new( visible => 1, maximize => 1);


my @url = (


    "http://blog.csdn.net/bsdplus/",


    "http://blog.csdn.net/bsdplus/archive/2008/04/16/2296812.aspx",


    "http://alan.blogcn.com",


    "http://alan0203.blogspot.com",


    "http://blog.csdn.net/bsdplus/archive/2007/10/22/1836987.aspx",


    "http://blog.csdn.net/bsdplus/archive/2008/04/13/2289361.aspx",


    "http://blog.csdn.net/bsdplus/archive/2008/04/14/2290446.aspx",


    "http://alan0203.blogspot.com/2008/04/use-proxy-authentication-with-perl.html",


    "http://alan0203.blogspot.com/2007/05/pcbsd-intel.html",


    "http://alan0203.blogspot.com/2007/05/fcitx-pcbsd.html",


    "http://alan0203.blogspot.com/2007/05/pcbsd_08.html",


    "http://alan0203.blogspot.com/2007/05/windowswinxppcbsd.html",


    "http://alan0203.blogspot.com/2007/05/winxppcbsd.html",


    "http://alan0203.blogspot.com/2007/05/blog-post.html"


    ); # end of url array






open(P_SOURCE, "<", $path)


            or die "Couldn't open $path for reading: $! "; #open txt file to read proxy list;


our @proxys = <P_SOURCE>;


    


my $waitSeconds = 2;


my $proxy_title = "Connect to myproxy.org";


my $wait_time = 1;




&set_IE_Proxy();




# start Site navigation


       my $myurl = @url[int(rand(9))]; #pick a url at random;


       sleep(int(rand(120)));


        $ie->gotoURL($myurl,$waitSeconds);

       # uncomment the following if your proxy requires username/password and if ALREADY has them cached.


    # my $clicker = Win32::IEAutomation::WinClicker->new( warnings => 1);


    # $clicker->push_confirm_button_ok($proxy_title, $wait_time);


    $ie->WaitforDone();


    print " URL is: $myurl  ";


    sleep(15);


    $ie->closeIE();




# close(P_SOURCE);






sub set_IE_Proxy() {




        my $proxy_pick = 1 + int(rand(@proxys));


        print " $proxy_pick is $proxy_pick ";


        my @SvrPtCn = split(" ", $proxys[$proxy_pick]); # split line into words;


        print "Proxy server pick is : $SvrPtCn[0]:$SvrPtCn[1] ";    


            my $server = $SvrPtCn[0];


           my $port = $SvrPtCn[1];


           my $enable= 1 ;


            my $override= "127.0.0.1;<local>";


        


        ################################################################


        # start TCP PING to see if the proxy is active on specified port




        my $test = Net::Ping->new('tcp', 5);


        $test->{port_num} =$port;




        if (! $test->ping($server)) {


              print "$server:$port isn't serving HTTP! ";


             &set_IE_Proxy();#next;


        } else {


        print "TCP Ping test ok! Setting IE proxy to $server:$port...... ";


        my $rkey=$Registry->{"CUser/Software/Microsoft/Windows/CurrentVersion/Internet Settings"};


            $rkey->SetValue("ProxyServer", "$server:$port", "REG_SZ");


           $rkey->SetValue("ProxyEnable",pack("L",$enable), "REG_DWORD");


           $rkey->SetValue("ProxyOverride", $override, "REG_SZ");


        print "IE proxy set.  ";


    };


    }; # end of sub set_IE_proxy();    


    



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ie perl server warnings url path