#!/usr/bin/perl
use LWP;
use HTTP::Cookies;

$header = HTTP::Headers->new;
$request = HTTP::Request -> new;


$header -> header('User-Agent' => 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB5; User-agent: Mozilla/4.0 (compatible; MSI
E 6.0; Windows NT 5.1; SV1); .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)',
 'Accept-Language' => 'ko',
 'UA-CPU' => 'x86',
 'Accept-Encoding' => 'gzip, deflate',
 'Host' => 'minihp.cyworld.com',
 'Connection' => 'Keep-Alive',
 'Referer' => 'http://minihp.cyworld.com/pims/main/pims_main.asp?tid=홈피아이디',
);

$url = "http://minihp.cyworld.com/pims/main/pims_main4.asp?tid=자신의홈피id&urlstr=";
$i=0;

while(1)
{

    $i++;
    $browser = LWP::UserAgent->new();//브라우져 생성
    $browser -> cookie_jar({}); //쿠키 저장
    $response = $browser->get($url); //브라우져에 요청
    print $response -> as_string; //헤더 및 응답받은 페이지 출력
    $browser -> cookie_jar -> clear;//쿠키삭제
        sleep(15);//15초 텀
}

혼자서 perl 공부해 보다가 혹시 필요한 분들이 계실꺼 같아서 올려봅니다.
perl은 국내 서적이 없더군요 ㅠㅠ
참고로 싸이월드 뿐만 아니라 모든 사이트 다 적용이 됩니다.


$response = $browser->get($url, $header) 해주시면 헤더파일 까지 조작해서 request를 날리게 됩니다.

15초 슬립건 이유는 싸이에서 15초내로 다시 리퀘스트를 날리면 매크로 프로그램 이라고 차단을 해버려서 입니다.

한 ip당 하루최대 300개만 허용합니다. 15초 이후에 리퀘스트를 날려도 해당 ip가 300번 이상 들어오면 무조건 차단입니다.
2010/03/12 16:26 2010/03/12 16:26

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다