제목 | curl 관련 질문했던 사람입니다 | ||
---|---|---|---|
글쓴이 | ParkHeeJi | 작성시각 | 2015/02/25 12:36:21 |
|
|||
컨트롤러에서 curl 처리해서 뷰에서 버튼 누르면 네이버 검색결과창이 뜨는것까지는 했는데 에이젝스로 검색결과창 스크립트 부분 받아올때 alert(data)를 쳐보면 <!doctype html> ~~~~~~~~ <meta name="description" lang="ko" content="''의 네이버 통합검색 결과입니다"><title> : 네이버 통합검색</title>~~~</script></body></html> 위의 [''의 네이버 통합검색 결과입니다]에서 검색어가 적용이 안돼서 들어가있더라구요 예를들어서 뷰 인풋창에 '자동차'라고 치고 버튼을 누르면 컨트롤러에서 처리하고 에이젝스로 데이터를 받아올때 ['자동차'의 네이버 통합검색 결과입니다] 라고 나와야 연관검색어 추출이 돼잖아요 컨트롤러 함수 소스는 $test = $this -> input -> post('test'); $url = "http://search.naver.com/search.naver?sm=tab_hty.top&where=nexearch&ie=utf8&query=".$test; $User_Agent = 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31'; $request_headers = array(); $request_headers[] = 'User-Agent: '. $User_Agent; $request_headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; $cookies = 'CookieName1=Value;CookieName2=Value'; $request_headers[] = 'Cookie: '. $cookies; $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_HTTPHEADER, $request_headers); curl_setopt ($ch, CURLOPT_USERAGENT, $User_Agent); curl_setopt ($ch, CURLOPT_COOKIE, $cookies); $file_contents = curl_exec($ch); echo $file_contents; 뷰에서 검색했을때 네이버 검색결과창이 전체적으로 다 뜨구요 에이젝스에서 데이터(스크립트) 받아올때 검색결에 변수가 안 먹혀서 들어옵니다 답변 기다릴게요 |
|||
다음글 | php curl 파싱 질문 좀 드릴게요 (2) | ||
이전글 | 중국에 서비스 하려고 하는데 궁금한게 있습니다 ^^.. (4) | ||
한대승(불의회상)
/
2015/02/25 15:00:10 /
추천
0
|
변종원(웅파)
/
2015/02/25 18:31:50 /
추천
0
api가 있는 것을 굳이 파싱할 필요는 없어 보이는데요.
실력검증인가요? |
ci세상
/
2015/02/25 22:21:47 /
추천
0
api로 하시는것이 가장 좋구요~~파싱을 직접 하실경우 몇가지 팁을 드리면요 ~ Tip1> 문자열 시작과 끝 자르기 http://php.net/manual/en/function.strpos.php function zGetText($str, $startChar, $endChar) { if(!$startChar) $start = 0; else $start = strpos($str, $startChar)+strlen($startChar); $tmp = substr($str, $start, strlen($str)); if(!$endChar) $end = strlen($str); else $end = strpos($tmp, $endChar); $result = substr($tmp, 0, $end); return $result; } $file_contents = zGetText($file_contents,"<dd class=\"lst_relate\">","</dd>"); Tip2> Curl Header / Curl Proxy등 http://php.net/manual/en/book.curl.php Tip3> Ajax 예제 https://developer.mozilla.org/ko/docs/AJAX/Getting_Started |
아래 URL 확인해 보세요.
http://developer.naver.com/wiki/pages/SrchAPI