PHP Developer Channel :: 討論園地

您尚未登入。

#1 2007-06-23 16:55:31

gzhichao
New member
註冊日期: 2007-06-23
文章數: 1

各位高手.请问一下读取某网站UID写入数据库的函数

#多线程制作方法
#首先把线程部分的代码放到一个函数中去,比如下面的 fun1
#
#然后执行 threads->create("函数名",参数1,参数2,....参数n); 就可以启动线程。
#线程内部自己做死循环,不然线程会退出的
#
#线程个数理论上很多,没问题的。
my $ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new(file => "ip.txt",autosave => 1,));
$ua->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)');
$ua->default_headers->header( 'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*');
$ua->default_headers->header( 'Accept-Language' => 'zh-cn');
$ua->default_headers->header( 'Accept-Encoding' => 'deflate');
$ua->default_headers->header( 'Host' => 's1122.com');
$ua->default_headers->header( 'Connection' => 'Keep-Alive');
$ua->default_headers->header( 'Cookie' => 'pma_theme=original; pma_lang=zh-gb2312; pma_charset=iso-8859-1');
$ua->timeout(10);

my $loginlang = "zh-cn";
my $loginuser = "cpf82007";
my $loginpass="2007";

my $loginusere = "cpf82006";
my $loginpasse="2006";
my $loginusert = "cpf82008";
my $loginpasst="2008";
my $uid;
my $uidtime = 0;
my $looptime = 0;
my $fasttime = 0;

while(1) #死循环,刷新 uid
{
    if(time() - $uidtime > 300)
    {
        &checkuid();

        &checkuide();

        &checkuidt();
        syserror(gmctime(time+28800) . " 登陆网站...");
        $uidtime = time();
    }   
    sleep(0.1); ##刷新间隔
}

sub checkuid
{
    $uid = '';
    my $luid;
    while(!$luid)
    {
        my $response = $ua->request(GET "http://s1122.com/app/member/index.php?langx=$loginlang");
        my $text = $response->as_string;
        if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
        {
            $luid = $1;
        }
        #$error ++;
    }
    if($error == 10)
    {
        syserror("访问错误!");
        exit;
    }
   
    $error = 0;
    my $url;
    while(!$url)
    {
        $ua->default_header( 'Referer' => "http://s1122.com/app/member/index.php?langx=$loginlang" );
        my $response = $ua->request(POST 'http://s1122.com/app/member/login.php',
                                   Content => [ uid  => "$luid",
                                                            langx => "$loginlang",
                                                            username => "$loginuser",
                                                            passwd => "$loginpass",
                                        ]);
   
        my $text = $response->as_string;
        if($text =~ /\=\s*\'([^\']+)\'/is)
        {
            $url = $1;
        }                                   
        elsif($text =~ /Plaese wait 3 minutes and try again/is)
        {
            syserror("等待 1 分钟");
            sleep(60);
        }
        #$error ++;
    }
   
    if($error == 10)
    {
        syserror("访问错误!");
        exit;
    }
    $error = 0;
   
    while(!$uid)
    {
        $ua->default_header( 'Referer' => 'http://s1122.com/app/member/login.php' );
        my $response = $ua->request(GET "$url");
        my $text = $response->as_string;
        if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
        {
            $uid = $1;
            my $dbh = DBI->connect("DBI:mysql:database=root;host=localhost", "root", "root") || die "数据库出现错误";
            $dbh->do("update web_system set uid='$uid'");
            $dbh->disconnect;
            syserror("写入中文ID成功");
        }
        #$error ++;
    }

    if($error == 10)
    {
        syserror("访问错误!");
        exit;
    }
}



sub checkuide
{
    $uid = '';
    my $luid;
    while(!$luid)
    {
        my $response = $ua->request(GET "http://s1122.com/app/member/index.php?langx=en-us");
        my $text = $response->as_string;
        if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
        {
            $luid = $1;
        }
        #$error ++;
    }
    if($error == 10)
    {
        syserror("访问错误!");
        exit;
    }
   
    $error = 0;
    my $url;
    while(!$url)
    {
        $ua->default_header( 'Referer' => "http://s1122.com/app/member/index.php?langx=en-us" );
        my $response = $ua->request(POST 'http://s1122.com/app/member/login.php',
                                   Content => [ uid  => "$luid",
                                                            langx => "en-us",
                                                            username => "$loginusere",
                                                            passwd => "$loginpasse",
                                        ]);
   
        my $text = $response->as_string;
        if($text =~ /\=\s*\'([^\']+)\'/is)
        {
            $url = $1;
        }                                   
        elsif($text =~ /Plaese wait 3 minutes and try again/is)
        {
            syserror("等待 1 分钟e");
            sleep(60);
        }
        #$error ++;
    }
   
    if($error == 10)
    {
        syserror("访问错误!");
        exit;
    }
    $error = 0;
   
    while(!$uid)
    {
        $ua->default_header( 'Referer' => 'http://s1122.com/app/member/login.php' );
        my $response = $ua->request(GET "$url");
        my $text = $response->as_string;
        if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
        {
            $uid = $1;
            my $dbh = DBI->connect("DBI:mysql:database=root;host=localhost", "root", "root") || die "数据库出现错误";
            $dbh->do("update web_system set uid_en='$uid'");
            $dbh->disconnect;
            syserror("写入英文ID成功");
        }
        #$error ++;
    }

    if($error == 10)
    {
        syserror("访问错误!");
        exit;
    }
}

sub checkuidt
{
    $uid = '';
    my $luid;
    while(!$luid)
    {
        my $response = $ua->request(GET "http://s1122.com/app/member/index.php?langx=zh-tw");
        my $text = $response->as_string;
        if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
        {
            $luid = $1;
        }
        #$error ++;
    }
    if($error == 10)
    {
        syserror("访问错误!");
        exit;
    }
   
    $error = 0;
    my $url;
    while(!$url)
    {
        $ua->default_header( 'Referer' => "http://s1122.com/app/member/index.php?langx=zh-tw" );
        my $response = $ua->request(POST 'http://s1122.com/app/member/login.php',
                                   Content => [ uid  => "$luid",
                                                            langx => "zh-tw",
                                                            username => "$loginusert",
                                                            passwd => "$loginpasst",
                                        ]);
   
        my $text = $response->as_string;
        if($text =~ /\=\s*\'([^\']+)\'/is)
        {
            $url = $1;
        }                                   
        elsif($text =~ /Plaese wait 3 minutes and try again/is)
        {
            syserror("等待 1 分钟e");
            sleep(60);
        }
        #$error ++;
    }
   
    if($error == 10)
    {
        syserror("访问错误!");
        exit;
    }
    $error = 0;
   
    while(!$uid)
    {
        $ua->default_header( 'Referer' => 'http://s1122.com/app/member/login.php' );
        my $response = $ua->request(GET "$url");
        my $text = $response->as_string;
        if($text =~ /name\=\"uid\" value\=\"([^\"]+)\"/is)
        {
            $uid = $1;
            my $dbh = DBI->connect("DBI:mysql:database=root;host=localhost", "root", "root") || die "数据库出现错误";
            $dbh->do("update web_system set uid_tw='$uid'");
            syserror("写入繁体ID成功");
            $dbh->disconnect;
        }
        #$error ++;
    }

    if($error == 10)
    {
        syserror("访问错误!");
        exit;
    }
}

最後修改: gzhichao (2007-06-23 16:55:51)

離線

 

論壇頁尾

Web Hosting
PHP Developer Channel
Powered by PunBB 1.2.9
© Copyright 2002–2005 Rickard Andersson