직설적으로 말하면, CURL 기술은 페이지 크롤링이나 양식 제출을 달성하기 위해 브라우저 동작을 시뮬레이션합니다. 이 기술을 통해 많은 흥미로운 기능을 달성할 수 있습니다.
코드 복사 코드는 다음과 같습니다.
error_reporting(0)
//이메일 사용자 이름(@163.com 접미사 제외)
$user = 'papatata_test'
//이메일 비밀번호
$pass = '000000'//대상 이메일
/ /$mail_addr = uenucom@163.com';
//로그인
$url = 'http://reg.163.com/logins.jsp?type=1&url=http://entry.mail. 163.com/coremail/fcg/ntesdoor2?lightweight=1&verifycookie=1&언어=-1&style=-1';
$ch = cur_init($url)
//쿠키 정보를 저장할 임시 파일 만들기
$cookie = tempnam('.','~');
$referer_login = 'http://mail.163.com';
//반환된 결과는 기본값이 아닌 변수에 저장됩니다.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); CURLOPT_POST, true)
curl_setopt($ch, CURLOPT_REFERER, $referer_login)
$fields_post = array(
'username'=> $user,
'password'=> $pass ,
'verifycookie'=>1,
'style'=>-1,
'product'=> 'mail163',
'selType'=>-1,
'보안'=>'설정'
);
$headers_login = array(
'User-Agent' => 'Mozilla/5.0(Windows; U; Windows NT 5.1; zh- CN; rv:1.9) Gecko/2008052906 Firefox/3.0',
'참조자' => 'http://www.163.com'
)
$fields_string = ''; >foreach($fields_post as $key => $value)
{
$fields_string .= $key . '&' .
$fields_string = rtrim ($fields_string , '&');
curl_setopt($ch, CURLOPT_COOKIESESSION, true)
//연결을 닫을 때 서버에서 반환한 쿠키를 다음 파일에 저장합니다.
curl_setopt($ch , CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_login);
curl_setopt($ch, CURLOPT_POST, count($fields))
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string ) ;
$result=curl_exec($ch);
curl_close($ch)
//Jump
$url='http://entry.mail.163.com/coremail/ fcg/ntesdoor2?lightweight=1&verifycookie=1&언어=-1&style=-1&username=loki_wuxi';
$ch = cur_init($url)
$headers = array(
'User-Agent' => 'Mozilla/5.0(Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0'
)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true)
curl_setopt ($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($ch, CURLOPT_POST, true)
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers) 🎜>//기존에 저장된 쿠키 정보를 함께 서버로 전송
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie)
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie)
$result = cur_exec( $ch);
curl_close($ch);
//sid 가져오기
preg_match('/sid=[^"].*/', $result, $location);
$sid = substr($location[0], 4, -1);
//file_put_contents('./result.txt', $sid)
//주소록 주소
$url= 'http ://g4a30.mail.163.com/jy3/address/addrlist.jsp?sid='.$sid.'&gid=all';
$ch = cur_init($url)
$ headers = array(
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/2008052906 Firefox/3.0'
); $ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120)
curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie)
$result =curl_exec($ch) ;
curl_close($ch);
//file_put_contents('./result.txt', $result);
unlink($cookie)//콘텐츠 크롤링 시작
preg_match_all ('/