네이버 많이 본 뉴스 PHP로 RSS 출력 만들기
네이버의 http://news.naver.com/main/ranking/popularDay.nhn?date=20090805§ionId=000&rankingType=popular_day 가보시면 하루동안 가장 많이 본 뉴스
리스트가 나옵니다. 최상위 5개는 이미지도 나와서 보기가 좋습니다.
주소 중 sectionId= 부분에서 000은
000="전체" 100 = "정치" 101="경제" 102="사회" 103="생활문화" 104="세계" 105="IT/과학" 107="스포츠" 106="연예" 115="TV"
이렇습니다.
아래의 내용을 test.php로 저장한 뒤 문서저장한 위치가 localhost 이라면
localhost/test.php?uuu=000 => 전체
localhost/test.php?uuu=100 => 정치
등으로 변수를 주어 사용할 수 있습니다.
uuu는 제가 변수줄때 자주쓰는거라 그냥 별뜻없이 uuu를 선택했습니다. ^^;;
//======================================================================================
<?
// echo date("Ymd",strtotime("now"));// 앞의 슬러쉬 // 를 제거해보세요.^^;;
$dat = date("Ymd",strtotime("now"));
// 000="전체" 100 = "정치" 101="경제" 102="사회" 103="생활문화" 104="세계" 105="IT/과학" 107="스포츠" 106="연예" 115="TV"
//http://news.naver.com/main/ranking/popularDay.nhn?date=20090805§ionId=101&rankingType=popular_day
$a = file('http://news.naver.com/main/ranking/popularDay.nhn?date='.date("Ymd",strtotime("now")).'§ionId='.$uuu.'&rankingType=popular_day');
$bae = 0;
for($i=0;$i<count($a);$i++)
{
if(ereg('<div class="ranking_relation">',$a[$i])) $cc = 1;
if(ereg('<div class="list_body ranking_body">',$a[$i])) $cc = 0;
if($cc == 1)
{
if(ereg('<img src="',$a[$i]))
{
$imga = explode('<img src="',$a[$i]);
$imga = explode('"',$imga[1]);
$img[$bae] = $imga[0];
// echo $img[$bae];
$linka = explode('<a href="',$a[$i-1]);
$linka = explode('">',$linka[1]);
$link[$bae] = $linka[0];
$titlea = explode('alt="',$a[$i+1]);
$titlea = explode('"',$titlea[1]);
$title[$bae] = $titlea[0];
// echo $link[$bae];
// echo $title[$bae];
$bae++;
}
}
} //for_end
$content .= '<?xml version="1.0"?>'.chr(13);
$content .= ' <rss version="2.0">'.chr(13);
$content .= ' <channel xmlns:psl="http://rainbow.daum.net/psl">'.chr(13);
$content .= ' <title>네이버 많이 본 뉴스</title>'.chr(13);
$content .= ' <link>http://kin.naver.com/open_home.php</link>'.chr(13);
$content .= ' <description>네이버 많이 본 뉴스</description>'.chr(13);
$content .= ' <pubDate></pubDate>'.chr(13);
$content .= ' <language>ko</language>'.chr(13);
$content .= ' <copyright>Copyright ⓒ NHN Corp. All Rights Reserved.</copyright>'.chr(13);
$content .= ' <webMaster>master@naver.com</webMaster>'.chr(13);
$content .= ' <generator>Naver</generator>'.chr(13);
$content .= ' <docs></docs>'.chr(13);
$content .= ' <ttl>20</ttl>'.chr(13);
$content .= ' <image>'.chr(13);
$content .= ' <url>http://static.naver.com/common/snb/090513/h_naver2.gif</url>'.chr(13);
$content .= ' <title>Naver RSS</title>'.chr(13);
$content .= ' <link>http://www.naver.com</link>'.chr(13);
$content .= ' </image>'.chr(13);
for($i=0;$i<count($title);$i++)
{
$content .= ' <item>'.chr(13);
$content .= ' <title>'.$title[$i].'</title>'.chr(13);
$content .= ' <link>http://kin.naver.com'.htmlspecialchars($link[$i]).'</link>'.chr(13);
$content .= ' <description><img src="'.$img[$i].'"></description>'.chr(13);
$cate = explode(',',$tag[$i]);
if($cate[0]) {$content .= ' <category>'.$cate[0].'</category>';}
if($cate[1]) {$content .= ' <category>'.$cate[1].'</category>';}
if($cate[2]) {$content .= ' <category>'.$cate[2].'</category>';}
if($cate[3]) {$content .= ' <category>'.$cate[3].'</category>';}
if($cate[4]) {$content .= ' <category>'.$cate[4].'</category>';}
// for($ii=0;$ii<count($cate);$i++)
// { echo '<category>'.$cate[$ii].'</category>'; }
$content .= ' </item>'.chr(13);
}//for_end
$content .= '</channel>'.chr(13);
$content .= '</rss>';
print $content;
?>