네이버 검색api 사용 질문 드립니다.
관련링크
본문
네이버 검색 api로 아래 소스를 이용해 xml을 불러오는것 까지는 했습니다.
<?php
class NaverProxy {
public function queryNaver($query, $target) {
$client_id = "";
$client_secret = "";
$query=urlencode("스칼라티움");
$target="blog";
$url = "https://openapi.naver.com/v1/search/blog.xml";
$url = sprintf("%s?query=%s&display=20&start=1&sort=sim&target=blog", $url, $query);
$is_post = true;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// curl_setopt($ch, CURLOPT_GET, $is_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = array();
$headers[] = "X-Naver-Client-Id: ".$client_id;
$headers[] = "X-Naver-Client-Secret: ".$client_secret;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec ($ch);
curl_close ($ch);
return $data;
}
}
$naverproxy = new NaverProxy();
echo $naverproxy -> queryNaver($_POST['query'], $_POST['target']);
?>
결과는 http://test.thedirectwedding.com/blog.html 과 같이 제대로 결과를 불러옵니다
문제는 불러온 값에서 제가 사용하고 싶은 부분만 변수로 지정해서 리스트 형식으로 뽑고 싶은데요
예를 들어 하이퍼링크 부분과 제목부분만 변수화해서 <a html="하이퍼링크">제목</a>
이런식으로 사용하려면 어떻게 해야되는걸까요? 제가 알기론 이런걸 파싱이라고 하는것 같은데
제가 워낙 초짜라 그런건 잘 몰라서요...알려주시거나 참고 할 수 있는 예제라도 좀 알려주시면
정말 감사드리겠습니다.
!-->
답변 2
<?php
class NaverProxy {
public function queryNaver($query, $target) {
$client_id = "";
$client_secret = "";
$query=urlencode("스칼라티움");
$target="blog";
$url = "https://openapi.naver.com/v1/search/blog.xml";
$url = sprintf("%s?query=%s&display=20&start=1&sort=sim&target=blog", $url, $query);
$is_post = true;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// curl_setopt($ch, CURLOPT_GET, $is_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = array();
$headers[] = "X-Naver-Client-Id: ".$client_id;
$headers[] = "X-Naver-Client-Secret: ".$client_secret;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec ($ch);
curl_close ($ch);
return $data;
}
}
$naverproxy = new NaverProxy();
// XML파일에서 원하는 항목만 추출하기
//echo $naverproxy -> queryNaver($_POST['query'], $_POST['target']);
$xmlstring = $naverproxy -> queryNaver($_POST['query'], $_POST['target']);
$xml = simplexml_load_string($xmlstring) or die("에러: 객체를 생성할 수 없습니다");
$items = $xml->channel->item;
foreach($items as $item){
echo '<a href="' . $item->link . '">' . $item->title . '</a><br>';
}
?>
똑같이 적용을 했는데 에러가 납니다.
객체를 생성할 수 없다는데요, 왜 XML이 생성이 안되는 건지 궁금하네요.
API ID, secret 키 모두 제대로 입력을 했는데 말이죠. 소스도 건드린데 없는데 왜 에러가 날까요?
답변을 작성하시기 전에 로그인 해주세요.