2015-01-02 2 views
0

브라우저에만 표시되는 Google 검색 결과 (일부는 자바 스크립트가 활성화 된 것 같습니다)의 일부 콘텐츠를 긁어 내야합니다. 특히, 지식 그래프 "사람들도 콘텐츠를 검색합니다" .Node.Js의 요청을 사용하여 javascript에서 콘텐츠 요청을 긁음

내가 긁어 requestcheerio의 조합을 사용하고 이미 강제로드하는 결과를 .com 도메인에서 관리하고있다, 그러나, 지식 상자는 자바 스크립트 제작 콘텐츠 아마 때문에, 내 결과의 body에 표시되지 않습니다 .

내가 추가 할 수있는 설정이나 내가 사용할 수있는 다른 라이브러리가 있는지 아는 사람은 누구입니까?

다음은 아래 코드입니다. 고맙습니다!

var request = require('request'); 
var cheerio = require("cheerio"); 

request = request.defaults({jar: true}); 

var options = { 
    url: 'http://www.google.com/ncr', 
    headers: { 
     'User-Agent': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16' 
    } 
}; 

request(options, function() { 

    request('https://www.google.com/search?gws_rd=ssl&site=&source=hp&q=google&oq=google', function (error, response, body) { 

     var $ = cheerio.load(body); 

     $("li").each(function() { 
      var link = $(this); 
      var text = link.text(); 

      console.log(text); 
     }); 
    }); 
}); 

답변

1

정적 콘텐츠를 다운로드하는 것만으로는 노드의 요청을 사용할 수 없습니다. 자바 스크립트를 렌더링하기 위해서는 브라우저를 사용해야합니다. 다행히도 이러한 목적으로 헤드리스 브라우저가 있습니다. PhantomJS을 제안합니다.

+0

고마워요! 나는 웹 검색을 찾아 냈다. 그러나 PhantomJS는 여전히 내가 필요한 정보를 얻지 못했다. 어쩌면 당신이 뭘 잘못했는지 알 수 있을까요? 이 문제와 관련하여 게시 한 또 다른 질문은 다음과 같습니다. http://stackoverflow.com/questions/27736883/phantomjs-how-to-get-googles-knowledge-graph-people-also-search-for-content 감사합니다! –

관련 문제