티스토리 툴바

include '_lib/class.snoopy.php'; 
$snoopy=new snoopy; 
$snoopy->fetch("http://www.daum.net");

다음의 메인페이지에서 소스보기를 해서 , 뉴스가 시작하는 부분과 끝나는 부분이 어떻게 되는지 잘 살펴본다. 다른 부분과 구별이 될수 있는 요소를 찾아내야한다.

현재 다음메인의 뉴스는 위와 같다. 소스보기를 해서 잘보면 뉴스부분이 <!-- // schWrap --> 로 시작해서 <!-- // ctsWrap --> 로 끝나는것을 발견할수 있다. 즉, <!-- // schWrap -->  이 윗부분을 없애고 , <!-- // ctsWrap --> 아래부분을 없애면 뉴스만 남게 된다는 말이다.

$t=explode("<!-- // ctsWrap -->",$snoopy->results); 
$r=explode("<!-- // schWrap -->",$t[0]);

이로써 $r에는 뉴스만 남게 되었다.

echo $r;

을 해보면 뉴스가 나오는것을 확인할수 있다.

전체 소스는 아래와같다.

<? 
include '_lib/class.snoopy.php'; 
$snoopy=new snoopy; 
$snoopy->fetch("http://www.daum.net");

$t=explode("<!--   // ctsWrap -->",$snoopy->results); 
$r=explode("<!-- // schWrap -->",$t[0]);

echo $r[1]; 
?>

그런데 프로그램을 실행시켜보면 , 다음처럼 이쁘게 나오는것이 아니라 그냥 쭉 뿌려주는 모양으로 나온다. 이것은 다음의 CSS가 적용이 안된 상태이기 때문이다. 다음 페이지의 소스보기를 해서 CSS 부분을 붙여 넣어줘야 한다. CSS 부분과 더불어 javascript 부분도 같이 넣어줘야한다. 그래야 다음메인 뉴스와 똑같은 모양으로 볼수가 있다.  하지만 , 오히려 저렇게 나오는게 써먹기에는 더 좋을수도 있다. CSS만 만들어서 붙인다면 다음과는 완전히 다른 모양으로 뉴스를 보여줄수 있기 때문이다.

여튼 위와 같은 간단한 방법으로 네이버뉴스,네이트뉴스도 가져오는게 가능하다. 기술적으로는 가능하지만 법적으로는 문제가 될 소지가 많다 .따라서 너무 과도한 사용은 자제하는게 좋을것같다.

 

ex

<?
 include "Snoopy.class.php";

 $snoopy = new Snoopy; 
 $snoopy->fetchtext("http://www.changupnet.go.kr/ikedPT/bmsIknewsBoardList.do?boardNo=53&prgNo=86");
 //print $snoopy->results;

 $snoopy=new snoopy; 
 $snoopy->fetch("http://www.changupnet.go.kr/ikedPT/bmsIknewsBoardList.do?boardNo=53&prgNo=86");
 $txt =  $snoopy->results;
 
 $ex = explode("<!-- --------- -->",$txt);
 $test = explode("<!-- -------- -->",$ex[1]);
 echo $test[0];
?>