Yuseunggeun

modify index.js(물품성능 크롤링 추가)

...@@ -6,46 +6,47 @@ var router = express.Router(); ...@@ -6,46 +6,47 @@ var router = express.Router();
6 var url = "https://www.videocardbenchmark.net/gpu_value.html#all-time-value"; 6 var url = "https://www.videocardbenchmark.net/gpu_value.html#all-time-value";
7 //var Graphic_card = []; 7 //var Graphic_card = [];
8 //var Price = []; 8 //var Price = [];
9 -var Graphic_card_info = new Array(); 9 +var exhange_rate = 0;
10 +var Graphic_card_info = new Array(); //그래픽카드정보 저장
10 Graphic_card_info[0] = { 11 Graphic_card_info[0] = {
11 - "name" : "", 12 + "name" : "", //물품이름
12 - "price" : 0, 13 + "price" : 0, //물품가격
13 - "link" : "" 14 + "link" : "", //물품정보링크
15 + "benchmark" : 0 //물품성능
14 } 16 }
15 var count = 50; 17 var count = 50;
16 18
17 -request(url, function(error, response, html){ 19 +request(url, function(error, response, html){ //크롤링
18 if(!error){ 20 if(!error){
19 var $ = cheerio.load(html); 21 var $ = cheerio.load(html);
20 var i = 0; 22 var i = 0;
21 $('ul.chartlist > li > a').each(function(){ 23 $('ul.chartlist > li > a').each(function(){
22 info = new Object(); 24 info = new Object();
23 var data = $(this); 25 var data = $(this);
24 - info.name = data.find("span.prdname").text(); 26 + info.name = data.find("span.prdname").text(); //물품 이름
25 - info.price = Number(data.find("span.price-neww").text().split(',').join('')); 27 + info.price = Number(data.find("span.price-neww").text().split(',').join('')); //물품 가격
26 - info.link = data.attr("href"); 28 + info.link = data.attr("href"); //물품 정보링크
29 + info.benchmark = Number(data.find("span.mark-neww").text()); //물품 성능
27 Graphic_card_info.push(info); 30 Graphic_card_info.push(info);
28 i++ 31 i++
29 if(i >= count){//50개만 저장 32 if(i >= count){//50개만 저장
30 return false; 33 return false;
31 } 34 }
32 }) 35 })
33 -
34 -
35 for(var i = 1; i <= count; i++){ 36 for(var i = 1; i <= count; i++){
36 - console.log(i + "."+Graphic_card_info[i].name+" - ("+Graphic_card_info[i].price+"$) - link : "+Graphic_card_info[i].link); 37 + console.log(i + "."+Graphic_card_info[i].name+" - ("+Graphic_card_info[i].price+"$) - link : "+Graphic_card_info[i].link + " /benchmark : "+Graphic_card_info[i].benchmark);
37 } 38 }
38 } 39 }
39 }); 40 });
40 41
41 router.get('/',function(req,res){ 42 router.get('/',function(req,res){
42 console.log('Main page'); 43 console.log('Main page');
43 - res.render('main',{}); 44 + res.render('main',{});//메인 페이지
44 }); 45 });
45 46
46 router.get('/rank',function(req,res){ 47 router.get('/rank',function(req,res){
47 console.log('Rank page'); 48 console.log('Rank page');
48 - res.render('rank',{ 49 + res.render('rank',{ //전체순위(가성비)
49 graphic_card_info : Graphic_card_info, 50 graphic_card_info : Graphic_card_info,
50 count : count 51 count : count
51 }); 52 });
...@@ -53,15 +54,16 @@ router.get('/rank',function(req,res){ ...@@ -53,15 +54,16 @@ router.get('/rank',function(req,res){
53 54
54 router.post('/search',function(req,res,next){ 55 router.post('/search',function(req,res,next){
55 console.log('Money : ' + req.body.money); 56 console.log('Money : ' + req.body.money);
56 - var Money = req.body.money; 57 + var Money = req.body.money; //입력한 예산
57 var Searchlist = new Array(); 58 var Searchlist = new Array();
58 var Searchcount = 0; 59 var Searchcount = 0;
59 Searchlist[0] = { 60 Searchlist[0] = {
60 "name" : "", 61 "name" : "",
61 "price" : 0, 62 "price" : 0,
62 - "link" : "" 63 + "link" : "",
64 + "benchmark" : 0
63 }; 65 };
64 - for(var i = 1; i <= count; i++){ 66 + for(var i = 1; i <= count; i++){ //가격이 예산이하인 물품만 저장
65 if(Graphic_card_info[i].price <= Money){ 67 if(Graphic_card_info[i].price <= Money){
66 Searchlist.push(Graphic_card_info[i]); 68 Searchlist.push(Graphic_card_info[i]);
67 Searchcount++; 69 Searchcount++;
......