PHP
php 웹페이지 파싱! (웹페이지 긁어오기)
WindowsHyun
2016. 11. 9. 03:47
반응형
함수 코드 :
function parsing_data($url, $data) { $agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36'; $curlsession = curl_init (); curl_setopt ($curlsession, CURLOPT_URL, $url); // 파싱 주소 url //curl_setopt ($curlsession, CURLOPT_SSL_VERIFYPEER, FALSE); // 인증서 체크같은데 true 시 안되는 경우가 많다. //curl_setopt ($curlsession, CURLOPT_SSLVERSION,3); // SSL 버젼 (https 접속시에 필요) curl_setopt ($curlsession, CURLOPT_HEADER, 0); curl_setopt ($curlsession, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curlsession, CURLOPT_POST, 1); // POST = 1, GET = 0 curl_setopt ($curlsession, CURLOPT_POSTFIELDS, "".$data.""); // POST 일경우 data 값을 받아 넣을수 ㅆ다.이 curl_setopt ($curlsession, CURLOPT_USERAGENT, $agent); curl_setopt ($curlsession, CURLOPT_REFERER, "http://windowshyun.tistory.com"); // 일부 사이트의 경우 referer 을 확인할 수 있다. curl_setopt ($curlsession, CURLOPT_TIMEOUT, 120); // 해당 웹사이트가 오래걸릴수 있으므로 2분동안 타임아웃 대기 $buffer = curl_exec ($curlsession); $cinfo = curl_getinfo($curlsession); curl_close($curlsession); if ($cinfo['http_code'] != 200){ return $cinfo['http_code']; } return $buffer; }사용 예제 :
function parsing_data($url, $data) { $agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36'; $curlsession = curl_init (); curl_setopt ($curlsession, CURLOPT_URL, $url); // 파싱 주소 url //curl_setopt ($curlsession, CURLOPT_SSL_VERIFYPEER, FALSE); // 인증서 체크같은데 true 시 안되는 경우가 많다. //curl_setopt ($curlsession, CURLOPT_SSLVERSION,3); // SSL 버젼 (https 접속시에 필요) curl_setopt ($curlsession, CURLOPT_HEADER, 0); curl_setopt ($curlsession, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curlsession, CURLOPT_POST, 0); // POST = 1, GET = 0 curl_setopt ($curlsession, CURLOPT_POSTFIELDS, "".$data.""); // POST 일경우 data 값을 받아 넣을수 ㅆ다.이 curl_setopt ($curlsession, CURLOPT_USERAGENT, $agent); curl_setopt ($curlsession, CURLOPT_REFERER, "http://windowshyun.tistory.com"); // 일부 사이트의 경우 referer 을 확인할 수 있다. curl_setopt ($curlsession, CURLOPT_TIMEOUT, 120); // 해당 웹사이트가 오래걸릴수 있으므로 2분동안 타임아웃 대기 $buffer = curl_exec ($curlsession); $cinfo = curl_getinfo($curlsession); curl_close($curlsession); if ($cinfo['http_code'] != 200){ return $cinfo['http_code']; } return $buffer; } $content = parsing_data("http://windowshyun.tistory.com", ""); echo $content;
사용 결과 :
실제 웹서버에 "test.php" 파일을 만들고 직접 테스트를 한 경우
test.php에서 http://windowshyun.tistory.com 페이지를 그대로 가지고 오게된다.
파싱을 하지 않고 사이트 그대로를 가져오기 때문에, 실제 사이트의 데이터와 똑같이 출력이 된다.
반응형