티스토리 뷰


로그인해야 하는 페이지의 경우.. 쿠키든.. 세션이든.. 파일로 떨어뜨려 놓구..

사용하니 편하다.. 로그인폼의 경우 수정하는경우가 거의 없으므로.. 시간 단축도 되고..

쓸만하다. 다만 파라미터 값을 일일히 찾아줘야 하므로 좀 귀찮기는 하지만.. -_-;;

테스트결과.. http, https 등.. 다 된다.

역시 PHP는 메뉴얼을 뒤적거리면 다 있다.. -_-;;

 

##### 기본 변수들 #####

 

### 스크랩할 곳 ID,PW
$id = "test";
$pw = "test";

 

### 스크랩해올 페이지
$GETURL="절대경로?파라미터값들"; // 스크래핑할 페이지 경로

$LOGINURL = "절대경로";               //LOGIN PROCESS 경로

 

### $GETURL에 붙어서 넘어갈 파라미터
$POSTFIELDS = "id=$id&pwd=$pw";

 

 

 

###### Cookie File Function ######

function AUTH_SITE_COOKIE_STORE($LOGINURL,$POSTFIELDS)
{
   $parseURL = parse_url($LOGINURL);

   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL,"$LOGINURL");
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_POSTFIELDS, "$POSTFIELDS");
   curl_setopt($ch, CURLOPT_COOKIEJAR, "경로".$parseURL[host].cookie);
   //curl_setopt($ch, CURLOPT_COOKIEFILE, "경로".$parseURL[host].cookie);
  
   ob_start();
   curl_exec ($ch);
   ob_end_clean();

   curl_close ($ch);
   return $parseURL[host].cookie;
}

AUTH_SITE_COOKIE_STORE($LOGINURL,$POSTFIELDS);

// 위의 Function을 실행시켜.. 쿠키파일을 떨어뜨리면 된다..

// 한번만 떨어뜨려 놓구.. 아래 Function에 떨어뜨려놓은 파일로 계속 사용.

 

 

 

###### Scrapping Function ######

function AUTH_SITE_GET($GETURL,$cookieFile)
{
   $parseURL = parse_url($GETURL);

   $ch = curl_init();
   curl_setopt($ch, CURLOPT_HEADER, 1 );
   curl_setopt($ch, CURLOPT_POST,1);
   curl_setopt($ch, CURLOPT_POSTFIELDS,$POSTFIELDS);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
   curl_setopt($ch, CURLOPT_TIMEOUT,100);    // REQUEST 에 대한 결과값을 받는 시간타임 설정
   curl_setopt($ch, CURLOPT_COOKIEJAR, "경로".$parseURL[host].cookie);
   curl_setopt($ch, CURLOPT_COOKIEFILE, "$cookieFile"); // 쿠키파일
   curl_setopt($ch, CURLOPT_URL,"$GETURL");
   $result = curl_exec ($ch);
   curl_close ($ch);
  
   // 스크랩파일 떨어뜨리기
   $fp = fopen ("경로/test.html", "w");
   fwrite($fp,$result);
   fclose ($fp);

   return $result;
}

echo $result = AUTH_SITE_GET($GETURL,"쿠키파일 절대경로및 파일명".$cookieFile);

[출처] CURL 사용할때..|작성자 신쥐

댓글
안내
궁금한 점을 댓글로 남겨주시면 답변해 드립니다.