node.js를 이용하 구글플레이 Crawling 방법 입니다.


Crawling을 위해서는 jsdom 이라는 모듈이 필요하며 설치 위치는 https://github.com/tmpvar/jsdom/tree/3.x 입니다.

(node.js에는 jsdom 3.x 버전만 설치 사용 가능 합니다.)


아래는 실제 코드 이며 사용법은 주석으로 되어 있습니다.


var jsdom = require('jsdom');

// ------ 중략 -----

app.get('/marketSeh',function(req,res){

var url_parts = url.parse(req.url,true);
var query = url_parts.query;
var gm_url;

gm_url = 'https://play.google.com/store/search?c=apps&q=' + escape(query.appname);
console.log(gm_url);

jsdom.env({
url:gm_url,
scripts: ['http://code.jquery.com/jquery.js'],
done: function (err, window) {           //페이지 호출이 완료되면 CallBack
var $ = window.jQuery;
var cards = $('.card-list .card'); //"card"로 시작하는 클래스를 포함하는 "card-list" 클래스 집합

// "." 은 클래스명 검색임을 "."이 없으면 태그명 검색임을 표시

var cardlen = cards.length;
var retvalue = []; //리턴값
var ii;

if(cardlen == 0){
res.json([{cover:'',title:'',subtitle:'',link:''}]);
return;
}

$.each(cards,function(i,card){        //세부 클래스들을 검색
var $card = $(this);
var _cover = $card.find('.cover-image').attr('src'); //이미지 url
var _title = $card.find('.title').attr('title'); //타이틀
var _subtitle = $card.find('.subtitle').text(); //서브타이틀
var _link = $card.find('h2 a').attr('href'); //링크
++i;
ii = i;


var obj = {cover:_cover.trim(),title:_title.trim(),subtitle:_subtitle.trim(),link:_link.trim() };

retvalue.push(obj);
});

if(cardlen = ii){
res.json(retvalue);
};
}
})

});


바로가기 앱: https://play.google.com/store/apps/details?id=com.orengineer.android.a209.floatingshotcut

'Node.js' 카테고리의 다른 글

가중치 구현 (DB,Node.js)  (0) 2015.10.23
Node.js Windows 10 에서 jsdom 3 설치 오류 해결  (0) 2015.09.05
시작합니다  (0) 2015.08.07

+ Recent posts