From 2aa0da1839ec70a89d0b5a066106353e90eba65e Mon Sep 17 00:00:00 2001 From: Sulaiman830 <33477408+Sulaiman830@users.noreply.github.com> Date: Mon, 21 Jan 2019 23:38:47 +0500 Subject: [PATCH] issue resolved --- server/routes/tmlaptops.routes.js | 20 +++++++--- server/routes/tmmobiles.routes.js | 19 +++++++--- ...mlaptops.scraper.js => tmlaptops.scrap.js} | 23 +++++------ server/scraper/tmmobiles.scrap.js | 38 +++++++++++++++++++ server/scraper/tmmobiles.scraper.js | 37 ------------------ 5 files changed, 75 insertions(+), 62 deletions(-) rename server/scraper/{tmlaptops.scraper.js => tmlaptops.scrap.js} (88%) create mode 100644 server/scraper/tmmobiles.scrap.js delete mode 100644 server/scraper/tmmobiles.scraper.js diff --git a/server/routes/tmlaptops.routes.js b/server/routes/tmlaptops.routes.js index 91ab82b..721e8b8 100644 --- a/server/routes/tmlaptops.routes.js +++ b/server/routes/tmlaptops.routes.js @@ -3,12 +3,20 @@ var express = require('express'); var router =express.Router(); -const Telemart = require('../scraper/tmlaptops.scraper'); -router.get('/', function(req, res){ - var data = Telemart.laptops(); - console.log(data); - res.status(200).json(laptops) - +const Telemart = require('../scraper/tmlaptops.scrap'); +router.get('/', async function(req, res){ + var items = await Telemart.laptops().then(result =>{ + return result; + + + }).catch(err=>{ + console.log(err); + return; + + }) + + res.status(200).json(items); + }); module.exports = router; \ No newline at end of file diff --git a/server/routes/tmmobiles.routes.js b/server/routes/tmmobiles.routes.js index 1f44826..a3721d0 100644 --- a/server/routes/tmmobiles.routes.js +++ b/server/routes/tmmobiles.routes.js @@ -3,12 +3,19 @@ var express = require('express'); var router =express.Router(); -const Telemart = require('../scraper/tmmobiles.scraper'); -router.get('/', function(req, res){ - var data = Telemart.allmobiles(); - console.log(data); - res.status(200).json(data); - +const Telemart = require('../scraper/tmmobiles.scrap'); +router.get('/', async function(req, res){ + var items = await Telemart.mobiles().then(result =>{ + return result; + + + }).catch(err=>{ + console.log(err); + return; + + }) + + res.status(200).json(items); }); diff --git a/server/scraper/tmlaptops.scraper.js b/server/scraper/tmlaptops.scrap.js similarity index 88% rename from server/scraper/tmlaptops.scraper.js rename to server/scraper/tmlaptops.scrap.js index 22671e3..976b0fa 100644 --- a/server/scraper/tmlaptops.scraper.js +++ b/server/scraper/tmlaptops.scrap.js @@ -1,11 +1,13 @@ var request = require('request'); var cheerio = require('cheerio'); - // let promise = Promise.all(laptops); - - exports.laptops = () =>{ + + exports.laptops = () =>{ var laptops = []; + return new Promise((resolve, reject)=>{ + + request('https://www.telemart.pk/mobile-and-tablets/accessories/charger.html', function(error, response, html){ if(!error && response.statusCode==200){ var $ = cheerio.load(html); @@ -24,18 +26,13 @@ var cheerio = require('cheerio'); laptops.push(item); - console.log(laptops); - + // console.log(laptops); }) } - - - + resolve(laptops); +}); + // return laptops; }) - }; - - - - \ No newline at end of file +} \ No newline at end of file diff --git a/server/scraper/tmmobiles.scrap.js b/server/scraper/tmmobiles.scrap.js new file mode 100644 index 0000000..51afcf5 --- /dev/null +++ b/server/scraper/tmmobiles.scrap.js @@ -0,0 +1,38 @@ +var request = require('request'); +var cheerio = require('cheerio'); + + + exports.mobiles = () =>{ + + var mobiles = []; + return new Promise((resolve, reject)=>{ + + + request('https://www.telemart.pk/mobile-and-tablets/accessories/charger.html', function(error, response, html){ + if(!error && response.statusCode==200){ + var $ = cheerio.load(html); + $('li.col-lg-3', html).each(function(i, element){ + var item = {} + var list = $(this); + + item.title = list.children().children().children().attr('title'); + item.url = list.children().children().children().attr('href'); + item.image = list.children().children().children().attr('src'); + item.availability = list.children('div.item-wrap').children('div.pro-info').children('div.pro-inner') + .children('div.wrap-pio').children().text(); + + item.price = list.children('.item-wrap').children('.pro-info').children('.pro-inner').children('.pro-content') + .children('.wrap-price').children('.price-box').children('.special-price').children('.price').text(); + + mobiles.push(item); + + // console.log(mobiles); + }) + } + + resolve(mobiles); + +}); + // return mobiles; +}) +} \ No newline at end of file diff --git a/server/scraper/tmmobiles.scraper.js b/server/scraper/tmmobiles.scraper.js deleted file mode 100644 index 402df69..0000000 --- a/server/scraper/tmmobiles.scraper.js +++ /dev/null @@ -1,37 +0,0 @@ -var request = require('request'); -var cheerio = require('cheerio'); - -request('https://www.telemart.pk/mobile-and-tablets/accessories/charger.html',function(error, response, html){ - if(!error && response.statusCode ==200){ - // var products = []; - var $ = cheerio.load(html); - $('.product-image',html).each(function(i, element){ - var a =$(this); - - var name = a.children().children().attr('href'); - // console.log(b.attr('href')); - - // products.push(product); - // console.log($(' img').attr('src')); - }); - // console.log(products); - } -}); -exports.allmobiles = () =>{ - console.log('All Mobiles'); - - var data = { - name: 'Rehman', - age: 23 - } - return data; - }; - exports.alllaptops = () =>{ - console.log('All Laptops'); - - var laptops = { - name: 'khan', - age: 23 - } - return laptops; - };